Pythonログ出力at AWS
Lambdaならpython-lambda-powertoolも選択肢。
Lambdaとそれ以外(FastAPI + Fargateなど)で扱いを変えたくないので、素直にloggingライブラリがよさそう。
python-lambda-powertool
logging
個人的にはコレがスッキリ。
code:json
"logger-json": {
"prefix": "logger-json",
"body": [
"import json",
"import logging",
"",
"class JsonFormatter:",
" def format(self, record):",
" return json.dumps(vars(record))",
"",
"# ルートロガーの設定",
"logging.basicConfig() # 標準エラーに出力するハンドラーをセット",
" # ハンドラーの出力フォーマットを自作のものに変更",
"logging.getLogger().handlers0.setFormatter(JsonFormatter())", "# 以降は普通にloggerを取得して処理を関数を書く",
"logger = logging.getLogger(__name__)",
"logger.setLevel(os.environ.get('LOG_LEVEL', 'INFO'))",
]
}