Это невозможно из-за иерархической структуры регистраторов, но я предполагаю, что в python2.7 вы можете попытаться создать свой собственный конфигурационный файл, основанный на функции dictConfig модуля журналирования.
дряю регистрацию Python в своем приложении и хочу использовать корневые настройки по умолчанию. Я хочу использовать настройки root, потому что я не хочу определять регистратор для модуля в файле конфигурации.
Когда я включаю ведение журнала уровня отладки для корневого регистратора, у меня возникает проблема с клиентским API QPID Python. Мои файлы журнала загружаются с помощью отладочных операторов qpid:
2011-03-16 09: 16: 18,664 - qpid.messaging.io.ops - DEBUG - SENT [8de6b2c]: ..
2011-03-16 09: 16: 18,667 - qpid.messaging.io.raw - DEBUG - ..
2011-03-16 09: 16: 18,668 - qpid.messaging.io.raw - ОТЛАДКА - ЧИТАТЬ [8de6b2c]: ..
2011-03-16 09: 16: 18,668 - qpid.messaging.io.ops - DEBUG - ..
И т.д..
Итак, два основных вопроса:
1) Есть ли способ включить * ведение журнала только для моих модулей без определения регистратора для модуля? Другими словами, есть ли способ сделать общие "настройки логгера", поэтому вместо того, чтобы определять раздел logger_ для каждого регистратора, есть ли способ настройки по умолчанию?
Что-то вроде:
[logger_shared_settings]
loggers = logger_A,logger_B,logger_C,logger_D
level=DEBUG
2) Или Как я могу отфильтровать журнал пакетов qpid через файл конфигурации?
Вот файл log.conf:
[loggers]
keys=root
[handlers]
keys=consoleHandler,fileHandler,nullHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=logging.handlers.RotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=('out.log',)
Вот что я пытался избежать:
[loggers]
keys=root, a, b, c, d
[handlers]
keys=consoleHandler,fileHandler,nullHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=ERROR
handlers=nullHandler
[logger_a]
level=DEBUG
handlers=consoleHandler,fileHandler
[logger_b]
level=DEBUG
handlers=consoleHandler,fileHandler
[logger_c]
level=DEBUG
handlers=consoleHandler,fileHandler