📜 Pythonでログを出力しない方法: NullHandlerの使用

post-cover

ライブラリを写経していたら、このようなコードがあった。

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レベル以上の重要度のログメッセージが全て出力されるようになる。


Profile picture
michael ☻︎ 🇯🇵
Web Engineer(PHP/Laravel, Python/FastAPI/Flask, TypeScript/Vue/React, AWS/GCP, etc.) / Freelance /
Profile picture
michael ☻︎ 🇯🇵
Web Engineer(PHP/Laravel, Python/FastAPI/Flask, TypeScript/Vue/React, AWS/GCP, etc.) / Freelance /
FebMarAprMayJunJul
© 2024, PWE