こんにちは、シュガーです。
AWS Lambdaの基本シリーズとして今回はロギングの紹介をしたいと思います。
ロギングとはプログラム実行中に起きた出来事を時間経過で記録することを指します。
Pythonではログを取得するためにloggingというモジュールが用意されています。
これを用いてログを出力し、結果を見てみたいと思います。
Lambda関数
それではログを出力するLambda関数を作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import logging print('Loading function') # ①ロード時にメッセージを出力 def lambda_handler(event, context): logger = logging.getLogger() # ②loggerの初期設定 logLevel=logging.WARNING # ③ロギングのレベルを設定 # ④ロギングレベルに応じたメッセージが出力される logger.debug('1:debug') logger.info('2:info') logger.warning('3:warning') logger.error('4:error') logger.critical('5:critical') |
コードの説明
①:Lambda関数がロードされたことが分かるようログにメッセージを出力します。
②:loggerオブジェクトを作成します。
③:設定したレベル以上のログを出力します。
④:ロギングレベルに応じたログが出力され、「’ ’」で囲ったメッセージが表示されます。
実行結果
実行結果は以下のとおりです。
今回、ロギングレベルを「WARNING」と設定したのでWARNING以上のレベルとしてERRORとCRITICALが出力されました。
またprintで出力した場合と違って、loggingで出力すると時刻やリクエストIDも自動的に出力されて、いつ、何の処理によるものか、詳細を把握することができます。
最後に
いかがでしたでしょうか。
ログを出力することでエラー調査や動作確認といったことができるようになります。
またロギングレベルを設定することにより、開発時、本番運用時などシーンに応じた必要な情報を出力されることができます。。
ログは開発環境ではデバッグ、本番環境ではエラーの切り分けなどに必須かと思いますのでうまく活用していただければと思います。
次回もお楽しみに。