loggerメモ

https://docs.python.org/3/library/logging.html

root logger

loggerは木構造になっている

import logging
logger = logging.getLogger()

print(logger)
# <RootLogger root (WARNING)>

RootLogger の handler 空なんですけど

print(logging.getLogger().handlers)
# []

空の場合に logging モジュールが勝手に設定する、 lastResort に流される!

_defaultLastResort = _StderrHandler(WARNING)
lastResort = _defaultLastResort

なので、

logging.lastResort = None

# まだ黙らない
No handlers could be found for logger "root"

以下のようにして黙らす。

logging.lastResort = logging.NullHandler()

filter

フィルタは WARNING レベル。

logger.debug('debug') # 出ない
logger.warning('warning') # 出る

default の handler (出力)

print(logger.handlers)
# []