📝

PythonからGCPのLoggingへNOTICEログを吐く

2021/01/19に公開

サマリ

python logging API で Google Cloud Logging へ Noticeログを吐くには、ログレベル300を使えばよいです。

python
logger.notice = lambda message: logger.log(300, message)

以下、詳細

PythonからGCPのLoggingにログを吐くとき、以下の二つのやり方があります:

Google Cloud Logging を直接使ってしまうとポータビリティが損なわれるので、ポータビリティを意識する場合は Python Logging API を使うことが望ましいといえます。

某プロジェクトでは、ログレベルを6段階で定義していました:

プロジェクトにおける定義 Python Logging
CRITICAL logger.critical()
ERROR logger.error()
WARNING logger.warning()
NOTICE -
INFO logger.info()
DEBUG logger.debug()

Python Logging API には notice() がなく、NOTICEメッセージを吐く方法がわかりませんでした。
該当するログレベルの値も定義されていません。

くそーパッチ当ててやるーと意気込んでソースを読んだら、NOTICE = 300 と定義されていました。
ログレベル300を指定してログ出力してみたところ、無事にNOTICEメッセージをStackdriverに送れました。

ソースの該当箇所: https://github.com/googleapis/python-logging/blob/master/google/cloud/logging_v2/_helpers.py#L34-L45


リンク

GitHubで編集を提案

Discussion