Pythonのlogging.config
モジュールは、アプリケーションやライブラリのための柔軟なエラーログ記録 (logging) システムを実装するための関数やクラスを定義しています。この記事では、logging.config
を使ってPythonのロギングを設定する方法について説明します。
logging.configの基本
まず、logging.config
を使ってログを出力する基本的なコードを見てみましょう。
import logging.config
logging.config.fileConfig("logging.conf")
logger = logging.getLogger()
logger.info("info level log")
logger.debug("debug level log")
このコードでは、logging.conf
という設定ファイルを読み込んで、ログを出力しています。設定ファイルの中身は以下のようになっています。
[loggers]
keys=root
[handlers]
keys=fileHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=INFO
handlers=fileHandler
[handler_fileHandler]
class=FileHandler
formatter=simpleFormatter
args=('root.log','a')
[formatter_simpleFormatter]
この設定ファイルでは、ログの出力レベル、出力先、出力形式などを設定しています。
ログのローテーション
ログファイルが大きくなりすぎると管理が難しくなるため、一定のサイズや一定の期間が経過したら新しいファイルに切り替えることがあります。これをログのローテーションと言います。
logging.config
では、TimedRotatingFileHandler
を使ってログのローテーションを行うことができます。
[handler_fileHandler]
class=handlers.TimedRotatingFileHandler
formatter=simpleFormatter
args=('root.log','D')
この設定では、ログファイルが日ごとにローテートされます。
ログのフォーマット
ログの出力形式は、formatter
セクションで設定することができます。
[formatter_simpleFormatter]
format=[%(asctime)s][%(levelname)s](%(filename)s:%(lineno)s) %(message)s
datefmt=%Y/%m/%d %H:%M:%S
この設定では、ログの出力形式が[日時][ログレベル](ファイル名:行数) メッセージ
となります。
以上、Pythonのlogging.config
を使ったロギングについて説明しました。このモジュールを使うことで、柔軟なログ記録が可能となります。