shenk
@shenk
t.me/kshnkvn

Как записывать в лог только определенные данные?

Инициализируется логгирование следующим образом:
import logging as log

log.basicConfig(handlers=[log.FileHandler(FILE_DIR+'log.log', 'a', 'utf-8')],
                level=log.DEBUG, format="%(asctime)s:%(levelname)s:%(message)s")

По коду раскидано очень много различных log.info и log.error, все они сохраняются в один файл вместе с DEBUG, из-за чего лог-файл очень трудно-читаем. Как можно настроить запись log.debug, log.info и log.error в разные файлы?
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
LaRN
@LaRN
Senior Developer
Можно вот так попробовать:
import logging

# create logger with 'spam_application'
logger = logging.getLogger('MyApp')
logger.setLevel(logging.DEBUG)
# create file handler which logs even debug messages
fd = logging.FileHandler('MyApp_Debug.log')
fd.setLevel(logging.DEBUG)
# create file handler which logs even error messages
fe = logging.FileHandler('MyApp_Error.log')
fe.setLevel(logging.ERROR)

# add the handlers to the logger
logger.addHandler(fd)
logger.addHandler(fe)

logger.debug('test message debug')
logger.error('test message error')


В MyApp_Error.log попадают только Error, а в MyApp_Debug.log и Error и Debug
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
24 июн. 2019, в 17:46
5000 руб./за проект
24 июн. 2019, в 17:44
700 руб./за проект
24 июн. 2019, в 17:08
200 руб./за проект