概要
ログを出力する方法はいくつか方法があります。標準出力に出力するのであれば、print()で出力できますが、本格的にアプリを作成する場合はloggingが使われます。
Pythonソースコード
import json
from logging import getLogger,config
with open('logConfig.json', 'r') as f:
conf = json.load(f)
config.dictConfig(conf)
logger = getLogger("sample.log")
logger.info('メッセージ')
設定ファイル(logConfig.json)
{
"version": 1,
"formatters": {
"sample": {
"class": "logging.Formatter",
"format": "%(asctime)s %(name)-15s %(levelname)-13s %(message)s",
"datefmt": "%Y-%m-%d %H:%M:%S"
}
},
"handlers": {
"consoleHandler": {
"class": "logging.StreamHandler",
"level": "INFO",
"formatter": "sample"
},
"fileHandler": {
"class": "logging.FileHandler",
"formatter": "sample",
"mode": "a",
"level": "DEBUG",
"filename": "./sample.log"
}
},
"loggers": {
"sample.log": {
"handlers": ["consoleHandler", "fileHandler"]
}
},
"root": {
"level": "INFO"
}
}
解説
import json
標準ライブラリのため、インストールは不要です。
from logging import getLogger,config
標準ライブラリのため、インストールは不要です。
with open('logConfig.json', 'r') as f:
conf = json.load(f)
設定ファイル(logConfig.json)を読み込みます。
config.dictConfig(conf)
設定ファイルをloggingに設定します。
※設定ファイルの説明については割愛します。
logger = getLogger("sample.log")
ロガーを設定します。(sample.log)
logger.info('メッセージ')
ログを出力します。
2022-04-20 22:11:20 sample.log INFO メッセージ
出力結果になります。
所感
設定ファイルの設定は少し複雑ですが、一度作成すれば、使いまわしができます。