Торнадо: файл журнала также записывается на стандартный вывод

Я использую FileHandler для записи журналов доступа торнадо в файл, но тот же журнал выводится на стандартный вывод.

from tornado.options import define, options

options.logging = None
options.parse_command_line()

access_log = logging.getLogger('tornado.access')
access_log.setLevel(logging.INFO)
handler = logging.FileHandler(log_path)
access_log.addHandler(handler)

// stdout::
INFO:tornado.access:200 GET / (ip) 0.93ms

Он записывает в файл журнала, но я не знаю, почему он также выводится на стандартный вывод.

1 ответ

Решение

Каркас журналирования Python основан на иерархии регистраторов. Что бы ни вошло в tornado.access также по умолчанию распространяется в корневой логгер (который по умолчанию идет в stderr). Если вы не хотите, чтобы журнал доступа дублировался, установите propagate атрибут:

access_log.propagate = False
Другие вопросы по тегам