ライブラリを写経していたら、このようなコードがあった。
logging.getLogger(__name__).addHandler(NullHandler())
調べてみると、ログを出力しない処理のようだ。 せっかくなのでメモ
NullHandlerとは
NullHandlerを設定することで、ログをコンソールに出力しなくなる。
import logging
# ロガーの設定
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
# ハンドラーの追加
handler = logging.NullHandler()
logger.addHandler(handler)
# ログメッセージの出力
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")
通常だと、ログが出力されるがNullHandlerに設定されているため、何もログに出力されない。
使用用途
基本的にログ出力が不要な場合に設定する。 ライブラリなど開発している時に、設定することが多いらしい。
ついでにサンプルコードの備考
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
getLoggerは、そのプロセスにおけるロガーを取得。 setLevelはログレベルの設定をINFOに設定している。(デフォルトだとログレベルは自分の環境だとWarningだった。)
この設定により、ログレベルがINFOになり、INFOレベル以上の重要度のログメッセージが全て出力されるようになる。