\

Pythonのロギングモジュールには、ログをJSON形式で出力する機能があります。これにより、SplunkやElasticSearchなどのログ分析ツールに適した形式でログを出力することが可能になります。

JSON形式のログ出力の設定

まず、ログ出力のフォーマットを設定します。以下に示すように、logging.Formatterクラスを使用してフォーマットを定義します。

{
  "version": 1,
  "formatters": {
    "detailed": {
      "class": "logging.Formatter",
      "format": "%(asctime)s %(name)-15s %(levelname)-13s %(message)s",
      "datefmt": "%Y-%m-%d %H:%M:%S"
    }
  },
  ...
}

次に、ログ出力のハンドラを設定します。以下に示すように、logging.StreamHandlerlogging.FileHandlerなどのクラスを使用してハンドラを定義します。

{
  ...
  "handlers": {
    "console": {
      "class": "logging.StreamHandler",
      "level": "INFO",
      "formatter": "detailed"
    },
    "file": {
      "class": "logging.FileHandler",
      "filename": "log/mplog.log",
      "mode": "a",
      "formatter": "detailed"
    },
    ...
  },
  ...
}

最後に、ロガーを設定します。以下に示すように、logging.getLogger関数を使用してロガーを取得します。

{
  ...
  "loggers": {
    "testfile": {
      "handlers": ["testfile"]
    }
  },
  ...
}

以上の設定により、Pythonのログ出力をJSON形式で行うことができます。

参考

  • Zennの記事「【Python】loggre ログ出力を、JSON形式で設定する」
  • PyPIのパッケージ「logging-json」
  • Stack Overflowの質問「How to implement json format logs in python」
  • Qiitaの記事「pythonでjson形式でログを出す #Python」

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です