Tornado は組み込みのログ モジュールを使用します。ファイル ハンドラーをルート ロガーに簡単にアタッチし、そのレベルを に設定してNOTSET
すべてを記録するか、フィルター処理する場合は他のレベルに設定できます。
参照ドキュメント: logging、logging.handlers
Tornado のロギングで動作する例:
import logging
# the root logger is created upon the first import of the logging module
# create a file handler to add to the root logger
filehandler = logging.FileHandler(
filename = 'test.log',
mode = 'a',
encoding = None,
delay = False
)
# set the file handler's level to your desired logging level, e.g. INFO
filehandler.setLevel(logging.INFO)
# create a formatter for the file handler
formatter = logging.Formatter('%(asctime)s.%(msecs)d [%(name)s](%(process)d): %(levelname)s: %(message)s')
# add filters if you want your handler to only handle events from specific loggers
# e.g. "main.sub.classb" or something like that. I'll leave this commented out.
# filehandler.addFilter(logging.Filter(name='root.child'))
# set the root logger's level to be at most as high as your handler's
if logging.root.level > filehandler.level:
logging.root.setLevel = filehandler.level
# finally, add the handler to the root. after you do this, the root logger will write
# records to file.
logging.root.addHandler(filehandler)
多くの場合、実際にはトルネードのロガーを抑制したいと考えています (私には独自のロガーがあり、とにかく例外をキャッチし、最終的にログを汚染するだけだからです)。これは、ファイルハンドラーにフィルターを追加することが非常に便利な場所です。 .