2024-09-27 –, 20F Track1
クラウド時代のログ出力では、JSONによる構造化ログや呼び出し元のコンテキストを含めた出力が必要とされます。このトークではstructlogを使い、実際のWebアプリケーション開発でDjango、Celery、Sentryのコンテキストを繋いでログ出力する例を紹介します。
structlogはOut-Of-The-Boxで簡単に使える便利なログ出力ライブラリ、ではありません。使いやすいラッパーライブラリは気軽に使い始められるメリットがあります。しかし、ある程度複雑な構成で標準ライブラリやフレームワークのログ出力もまとめて扱うには、始めやすさよりも、追跡しやすいログを簡単なコードで手軽に出せることが大事になってきます。
クラウド時代のログ出力では、ログを機械的に扱えるように、構造化されたJSONフォーマットが求められます。また、各ログの追跡可能性を高めるためにはログのコンテキスト情報をフレームワークのログ出力にも含めることが求められます。こういった追跡可能なログによって、トラブル時の調査にかかる労力は大幅に削減されます。
structlogはこのようなニーズに合わせて自由にカスタマイズが可能ですが、そのカスタマイズ性の高さは最初の導入ハードルにもなっています。
多くの開発者がPython標準のログ出力ライブラリを使用していますが、複雑なクラウド環境で発生する問題を効率的に解析するには限界があります。structlogは、そのカスタマイズ性の高さと、ログをJSON形式で構造化して出力する能力により、ログデータをより機械的に解析しやすくすることが可能です。
このトークを通じて、参加者にstructlogの効果的な使い方を伝えることで、開発業務がよりスムーズに、そして生産的に進むことを目指します。
- ログ出力の用途、現在のログ関連ツールの状況、ログ出力の効果
- structlogの具体的な使い方
- ログはあるけど追うのが大変だと思ってる方
- クラウド時代のWebアプリ開発や、そのデバッグで苦労した経験
Intermediate
Language of presentation:日本語
Language of presentation material:日本語
・所属
・BeProud
・一般社団法人PyCon JP Association 会計理事
・イベント関連
・PyCamp 講師
・Python mini hack-a-thon主催
・Sphinx-Users.jp 運営
・Sphinxのコミッター
・Twitter: @shimizukawa( https://twitter.com/shimizukawa )
・BlueSky: shimizukawa.bsky.social
・URL: http://清水川.jp/