Пирамидальная каротаж

У меня есть приложение для пирамиды, и я хочу, чтобы журналы попадали в stderr и stdout. 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

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

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