見出し画像

【Python】ログを出力する方法

※過去の記事を再投稿しています


概要

ログを出力する方法はいくつか方法があります

標準出力に出力するのであれば、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 メッセージ

 出力結果になります


所感

 設定ファイルの設定は少し複雑ですが、一度作成すれば、使いまわしができます


この記事が気に入ったらサポートをしてみませんか?