Skip to main content

Get full access to 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス and 60K+ other titles, with a free 10-day trial of O'Reilly.

There are also live events, courses curated by job role, and more.

12.2 ログに出力すべき内容を決めるには

アプリケーションのアーキテクチャをどうするかという議論は定期的に盛り上がりますが、ログに何を出力すれば良いのかについては、あまり議論されていた記憶がありません。

どのようなシステムも、大局的に見れば入力と出力がある系(システム)だと言えます。システムの稼働時には、データベースの内部状態がプログラムの動作に影響を与える入力になります。一方でデータベースは、結果を格納する出力先でもあります。「入力値が決まれば、処理の結果として出力される内容も決まる」という観点は、ソフトウェアのテストにおいて大切ですが、ログを取得する場合にも意識しておくと良いでしょう。

../_images/system.png

図12-1: ソフトウェアの構造

note

近年話題になっている関数型プログラミングでは、内部の状態も外部化して、ロジックは過去の状態を元に将来の状態を作り出す変換関数として扱います。

12.2.1 どんな目的でログを利用するか

ログ出力にあたっては、どのような目線で利用するかを意識することが大切です。

  • 開発者目線

    • 不具合が発生した時の問題追跡

    • パフォーマンス改善ポイントの発見

  • 運用目線

    • サーバー停止などの確認

    • 監査

    • ユーザーの分析

  • セキュリティ監査目線

    • ユーザーや管理者の操作を後から追跡できるようにする ...

Get 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.

Don’t leave empty-handed

Get Mark Richards’s Software Architecture Patterns ebook to better understand how to design components—and how they should interact.

It’s yours, free.

Get it now
Cover of Software Architecture Patterns

Check it out now on O’Reilly

Dive in for free with a 10-day trial of the O’Reilly learning platform—then explore all the other resources our members count on to build skills and solve problems every day.

Start your free trial Become a member now