Отключить ведение журнала для определенного пакета - PullRequest
6 голосов
/ 16 марта 2011

В моем приложении реализована регистрация в python, и я хочу использовать корневые настройки по умолчанию.Я хочу использовать настройки root, потому что я не хочу определять регистратор для модуля в файле конфигурации.

Когда я включаю ведение журнала уровня DEBUG для корневого регистратора, у меня возникает проблема с клиентским API-интерфейсом QPID Python.Мои файлы журнала заполняются инструкциями отладки qpid:

2011-03-16 09: 16: 18,664 - qpid.messaging.io.ops - ОТЛАДКА - ОТПРАВЛЕНО [8de6b2c]: ..

2011-03-16 09: 16: 18 667 - qpid.messaging.io.raw - DEBUG - ..

2011-03-16 09: 16: 18 668 - qpid.messaging.io.raw- DEBUG - READ [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

1 Ответ

3 голосов
/ 16 марта 2011

С python2.7 вы можете установить NullHandler в qpid logger:

[logger_qpid]
level=NOTSET
handlers=nullHandler
qualname=qpid
propagate=0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...