Пирамидальный каротаж - PullRequest
11 голосов
/ 02 июня 2011

У меня есть приложение пирамиды, и я хочу, чтобы логи попали в stderr и stdout. Стандартный вывод должен быть уровня "INFO" и ниже. stderr должен быть «WARN» и выше. Как мне изменить мой файл .ini, чтобы сделать это?

В настоящее время я регистрируюсь так, это считается правильным способом?

log = logger.getLogger(__name__)
log.info("update ...")
log.error("MAYDAY MAYDAY... BOOM!!!")

В настоящее время я использую ведение журнала по умолчанию.

[loggers]
keys = root, app

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = WARN
handlers = console

[logger_app]
level = WARN
handlers =
qualname = app

[handler_console]
class = StreamHandler
args = (sys.stderr,)                                                                                                                          
85 level = NOTSET
formatter = generic

[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s

1 Ответ

10 голосов
/ 03 июня 2011

Вы можете добавить несколько обработчиков в корень, разделенных запятыми.Если вы хотите отфильтровать за пределами обычного критерия «только принимать сообщения выше этого уровня ведения журнала» (то есть только отладочные сообщения), то вам нужно использовать что-то вроде фильтра ведения журнала, чтобы принимать / отклонять записи на основе их определенных уровней: http://docs.python.org/library/logging.html#filter-objects

Ваш текущий метод ведения журнала с использованием log = logging.getLogger(__name__) является совершенно правильным и удобным способом организации иерархии ведения журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...