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

記事
IT・テクノロジー

概要

ログを出力する方法はいくつか方法があります。標準出力に出力するのであれば、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 メッセージ
 出力結果になります。

所感

 設定ファイルの設定は少し複雑ですが、一度作成すれば、使いまわしができます。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す