Pythonのlogging
モジュールは、ログの出力先を指定するための強力な機能を持っています。この記事では、その基本的な使い方を紹介します。
loggingとprintの違い
print
: 主にデバッグ用で、ログレベルを指定できません。logging
: ログレベルを指定でき、ログをファイルに出力できます。また、ログのフォーマットを指定したり、ログの出力先を複数指定したりすることができます。
loggingの基本的な使い方
loggingには以下のようなログレベルがあります。
DEBUG
: 問題の診断のときに興味のある詳細情報を記録するために使用します。INFO
: 正常な動作を示す情報を記録するために使用します。WARNING
: 問題が発生したことを示す警告を記録するために使用します。ERROR
: 重大な問題によって、ある機能を実行できないときに使用します。CRITICAL
: プログラム自体が実行を続行できない重大な問題が発生したときに使用します。
以下に、各種ログレベルの出力方法を示します。
import logging
# ログレベルを設定
logging.basicConfig(level=logging.DEBUG)
# 各種ログレベルの出力
logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
logging.critical("critical")
ログをファイルに出力する
logging
モジュールには、FileHandler
というクラスがあります。このクラスを使うと、ログをファイルに出力することができます。
以下に、ログをファイルに出力する方法を示します。
import logging
# ロガーの設定
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
# ファイルへ出力するハンドラーを定義
fh = logging.FileHandler(filename='./logs/test001.log', encoding='utf-8')
fh.setLevel(logging.DEBUG)
fh.setFormatter(formatter)
# rootロガーにハンドラーを登録する
logger.addHandler(fh)
# ログ出力
logger.debug("ログに出力")
logger.info("ログに出力")
logger.warning("ログに出力")
logger.error("ログに出力")
以上がPythonのlogging
モジュールを使ってログ出力先を設定する基本的な方法です。これらの知識を使って、より効率的なデバッグを行いましょう。