#logging #google-colaboratory #logfile
Вопрос:
Я написал следующий код:
import logging
logging.basicConfig(filename='rb-log.log',
format='%(process)d-%(asctime)s-%(levelname)s-%(message)s',
level=logging.DEBUG)
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
Файл журнала содержит:
646-2021-10-30 22:08:39,404-WARNING-This is a warning message
646-2021-10-30 22:08:39,406-ERROR-This is an error message
646-2021-10-30 22:08:39,407-CRITICAL-This is a critical message
В файл журнала записываются только ПРЕДУПРЕЖДЕНИЯ, ОШИБКИ и КРИТИЧЕСКИЙ журнал. Журналы ОТЛАДКИ и ИНФОРМАЦИИ не записываются. Что я здесь делаю не так?
Ответ №1:
Вы не показываете, как вы настроили logger
, поэтому кажется, что это происходит до настройки. Конфигурация ( logging.basicConfig(...)
) не будет применяться к уже настроенному регистратору; ваш регистратор использует уровень предупреждения по умолчанию.
Вы можете использовать удобные методы logging
, как показано на рисунке https://docs.python.org/3/howto/logging.html#logging-to-a-file
logging.basicConfig(filename='rb-log.log',
format='%(process)d-%(asctime)s-%(levelname)s-%(message)s',
level=logging.DEBUG)
logging.debug('This is a debug message')
logging.info('This is an info message')
или настройте ведение журнала перед созданием вашего регистратора:
logging.basicConfig(filename='rb-log.log',
format='%(process)d-%(asctime)s-%(levelname)s-%(message)s',
level=logging.DEBUG)
logger = logging.getLogger(__name__)
logger.debug('This is a debug message')
logger.info('This is an info message')
Комментарии:
1. вы правы. Я создал переменную logger перед вызовом метода basicConfig. Решено.