Пирамидальная каротаж
У меня есть приложение для пирамиды, и я хочу, чтобы журналы попадали в 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__)
является абсолютно корректным и удобным способом организации иерархии протоколирования.