PyCon JP 2024

実践structlog

クラウド時代のログ出力では、JSONによる構造化ログや呼び出し元のコンテキストを含めた出力が必要とされます。このトークではstructlogを使い、実際のWebアプリケーション開発でDjango、Celery、Sentryのコンテキストを繋いでログ出力する例を紹介します。


structlogはOut-Of-The-Boxで簡単に使える便利なログ出力ライブラリ、ではありません。使いやすいラッパーライブラリは気軽に使い始められるメリットがあります。しかし、ある程度複雑な構成で標準ライブラリやフレームワークのログ出力もまとめて扱うには、始めやすさよりも、追跡しやすいログを簡単なコードで手軽に出せることが大事になってきます。
クラウド時代のログ出力では、ログを機械的に扱えるように、構造化されたJSONフォーマットが求められます。また、各ログの追跡可能性を高めるためにはログのコンテキスト情報をフレームワークのログ出力にも含めることが求められます。こういった追跡可能なログによって、トラブル時の調査にかかる労力は大幅に削減されます。
structlogはこのようなニーズに合わせて自由にカスタマイズが可能ですが、そのカスタマイズ性の高さは最初の導入ハードルにもなっています。


Why did you choose this topic?

多くの開発者がPython標準のログ出力ライブラリを使用していますが、複雑なクラウド環境で発生する問題を効率的に解析するには限界があります。structlogは、そのカスタマイズ性の高さと、ログをJSON形式で構造化して出力する能力により、ログデータをより機械的に解析しやすくすることが可能です。
このトークを通じて、参加者にstructlogの効果的な使い方を伝えることで、開発業務がよりスムーズに、そして生産的に進むことを目指します。

Knowledges and know-how the audience can get from your talk
  • ログ出力の用途、現在のログ関連ツールの状況、ログ出力の効果
  • structlogの具体的な使い方
Prior knowledges speakers assume the audience to have
  • ログはあるけど追うのが大変だと思ってる方
  • クラウド時代のWebアプリ開発や、そのデバッグで苦労した経験
Audience experiment

Intermediate

Language of presentation

日本語

Language of presentation material

日本語