Торнадо: файл журнала также записывается на стандартный вывод
Я использую 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