次のコードがあるとします。
import logging
import logging.handlers
a = logging.getLogger('myapp')
h = logging.handlers.RotatingFileHandler('foo.log')
h.setLevel(logging.DEBUG)
a.addHandler(h)
# The effective log level is still logging.WARN
print a.getEffectiveLevel()
a.debug('foo message')
a.warn('warning message')
ハンドラーを設定logging.DEBUG
すると、デバッグ レベルのメッセージがログ ファイルに書き込まれると思います。logging.WARNING
ただし、これは有効なレベル (デフォルトの に等しい) として 30 を出力しwarn
、デバッグ メッセージではなく、メッセージのみをログ ファイルに記録します。
ハンドラーのログ レベルが低下しているように見えます。たとえば、黙って無視されています。なぜsetLevel
ハンドラーを持っているのですか?