#python #django #logging
#python #джанго #ведение журнала #django #протоколирование
Вопрос:
Ниже приведена конфигурация, которую я использую:
LOGGING_CONF = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handler': {
'file': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'formatter': 'verbose',
'filename': 'D:workspaceyogasynccodescode_svnYogaSynclogworkspacelogconfig.log',
'maxBytes': 20480,
'backupCount': 3,
},
},
'logger': {
'extensive': {
'level':'DEBUG',
'handlers': 'file'
},
},
}
в модуле, где мне нужно создавать журналы, я вставил приведенный ниже код:
import logging
import logging.config
logging.config.dictConfig(LOGGING_CONF)
logger = logging.getLogger('extensive')
logger.info("This is my first log")
Когда я выполняю это, ошибок не возникает, однако журналы не создаются.
Я не уверен, чего не хватает. Я хочу использовать только dictCongif
Пожалуйста, помогите мне с этим.
Ответ №1:
Вы должны добавить обработчик, чтобы что-то происходило со всеми этими регистраторами. Например,
logfile = logging.handlers.FileHandler("mylog.log")
logfile.setLevel(logging.DEBUG)
logfile.setFormatter(logging.Formatter('%(asctime)s %(levelname)-8s %(module)s: %(message)s'))
logging.getLogger('').addHandler(logfile)
Комментарии:
1. Мы можем настроить ведение журнала тремя способами: 1. Создание регистраторов, обработчиков и форматировщиков явно с использованием кода Python, который вызывает методы настройки, перечисленные выше. 2. Создание файла конфигурации протоколирования и чтение его с помощью функции fileConfig(). 3. Создание словаря конфигурационной информации и передача его в функцию dictConfig(). вы упомянули первый способ протоколирования. я хочу сделать это с помощью 3-го метода (dictConfig)
2. @Arun: о, в этом случае, может быть,
loggers
ключом должен быть список? этоhandlers
неhandler
так. итак, у'extensive': { 'level': 'DEBUG', 'handlers': ['file']}
3. Спасибо, это должны быть обработчики, а не обработчик, и регистраторы, а не logger. (Глупая ошибка) и да, обработчики должны быть списком. Спасибо, вы помогли мне достать бутылку пива . 😉
4. ооо, что такое солодовый ликер, от чего вы быстрее пьянеете, что поставляется в бутылках или в каанах? ПИВО!
5. на нашем рабочем месте мы готовим охлажденное пиво для тех, кто заканчивает там дневную работу в earlist, и сегодня это CARLSBERG в бутылках