2011-09-24

ログの設計(考え方)

あらゆるシステムを作成する際に重要な役割を果たすのがログであり、概ね開発段階・運用段階において以下の目的で使用される。

開発段階(テスト段階)でログ出力を行う目的

  • 処理呼び出しの契機の確認(システム外部からの呼び出し確認)
  • 処理結果(正常終了・異常終了)確認
  • 処理通過ルートの確認
  • 性能計測(ログ出力時刻を基準にして計算)
運用段階でログ出力を行う目的

  • 障害発生の検出
  • 障害発生箇所の局所化
  • 障害発生原因の推定
目的の違いや、むやみに出力を行うとログ出力量が膨大になり、またログ出力自体もひとつの処理なので、出力を増やしすぎると性能に影響する事も避けられず、たいていの場合はシステム内でログレベルが決められている(決めないと後工程に推移するにつれて大変なことになる)。
大抵の場合、ログレベルは重要度に応じて定義される。最低でも以下のログレベルは用意すべきである。
  • エラー(重要・復旧不可能)
  • エラー(軽微・復旧可能)
  • システム外との入出力ログ
  • システム内部(機能単位)の入出力ログ
  • デバッグログ(結合試験の結果確認で必要な情報)
  • トレースログ(単体試験の結果確認で必要な情報)
運用レベルではエラーログとシステム間の入出力があれば、そこから何が起こっているのかは類推できるはずなので、試験終了まではそれ以外も出力してよいと個人的に考えている。また、入出力ログのタイムスタンプからどの程度の処理性能なのかは確認できるので、運用試験の工程にて確認する目的でも使用可能であると考える。

0 件のコメント:

コメントを投稿