Запись в лог и вывод в терминал
Нужен был код для записи лога работы телеграмм бота. Нашел такой вариант. Проблема в том что он выводит лог только в терминал, а в bot.log нет. Помогите исправить таким образом что бы лог выводился и в терминал, и записывался в файл.
import logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)
handler = logging.FileHandler('bot.log')
handler.setLevel(logging.INFO)
handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
logger.addHandler(handler)
Ответы (2 шт):
Автор решения: Maksim Alekseev
→ Ссылка
Попробуй убрать basicConfig и использовать два handler-а в своем logger-е
import logging
logger = logging.getLogger(__name__)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
stream_handler.setFormatter(formatter)
logger.addHandler(stream_handler)
file_handler = logging.FileHandler('bot.log')
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
Автор решения: AVID GAMER
→ Ссылка
Нашел следующее решение. У меня, покрайней мере, этот вариант дал необходимый результат.
logging.basicConfig(level=logging.INFO)
file_handler = logging.FileHandler('bot.log')
console_handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
logger = logging.getLogger('my_bot')
logger.addHandler(file_handler)
logger.addHandler(console_handler)