PyCon JP 2024

ロケール設定が保存されました。pretalxでは英語のサポートが充実していると思っていますが、問題やエラーが発生した場合は、ぜひご連絡ください。

実践structlog
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

発表の言語

日本語

発表資料の言語

日本語

See also: トークスライド

・所属
・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/