龙卷风:文件日志也写入标准输出

Tornado: file log is also write to stdout

我正在使用 FileHandler 将 tornado 访问日志写入文件,但相同的日志输出到标准输出。

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

它确实写入日志文件,但我不知道为什么它也输出到标准输出。

Python 的日志记录框架基于记录器的层次结构。记录到 tornado.access 的任何内容在默认情况下也会传播到根记录器(默认情况下会转到 stderr)。如果您不希望访问日志重复,请设置 propagate 属性:

access_log.propagate = False