Logging anti-patterns

ロギングのためのアンチパターン集.当てずっぽうだけど,だいたいこんな内容だろう.:-D

利用者が異なるログをひとつのファイルに書いちゃイカン.
たとえば,監査ログは監査ログ,マーケット分析ログはマーケット分析ログに分けて管理しよう.
不完全な内容をログに書いちゃイカン.
プリペア文だけのSQLとか(パラメタも展開しなさい).
自分勝手なセパレータを使っちゃイカン.
あとで機械処理するのに面倒だ.カンマとかタブで統一しなさい.
ひとつのファイルに異なるフォーマットで書いちゃイカン.
あとで機械処理するのが大変だから.
改行付きのログを書いちゃイカン.
あとで機械処理するのが大変だから.できれば改行をスペースに置換するとか,思い切ってXMLで書こう.
同じ文脈のログを複数回に分けて書いちゃイカン.
「まずメソッド名書いて,続いて引数を次々書き出す」みたいなの.サーバログだと,そのエントリが行儀良く並んで書かれる保証はないから,同じ文脈のログはまとめて1回で書き出しなさい.
処理のあとにログを書いちゃイカン.
その処理がエラーになったらログが書かれないでしょ.ログは処理の前に書きなさい.

なるほど,いくつかは参考になる.ログってコード組んでる最中は,あまり省みないから,かなり耳が痛いな.


ちなみに「良いログ」にするには,アンチパターンの真逆をすればよい.
若干あぶれてるのは,これらかな.

  • 前もってログのフォーマットを決めておこう.
  • ログのサイズを気にしとこう(アーカイブも含む).