BSA / Not Just the Facts


Not Just The Facts

要約

ログにはさまざまな情報を含めることができる。

マーフィーの法則:「ログにどんな情報を含めるべきかは、実際にその情報が必要になるまでわからない」

なので、何がおこったのかを把握できるように、できるだけの情報を含めるようにしよう。

ログの使い勝手を高めるためのテクニック

以下のカテゴリごとに、おすすめの出力内容を説明する。

デバッグ/エラーログ

コンテキスト情報。Windowのワトソン博士(Drwtsn32.exe)みたいなもの。

関数呼び出しの入力と出力。

パフォーマンスチューニング

実行したコマンドとその所要時間。


キャパシティプランニング

複雑なシステムではさまざまなリソースを用いるので、その利用状況をログファイルで監視すればパフォーマンスの向上に役立つ。 かつて私がかかわったアプリケーションでは……(以下経験談が続く。データベースとのコネクションの確立やそのコネクションの利用をログに記録することで、最初のどの程度のコネクションを用意すべきかを判断したという話題)

挙動の追跡/監査

さまざまな機能が使われた回数を記録する。たとえばDLLが呼び出された回数など。

システム設定情報の入力と処理結果

設定パラメータの情報を記録する。パラメータが初期化されたことなども記録しておくべきだ。これは、後でレビューしたり分析したりするのに役立つ。

稼働状況

トランザクションの状態や累積リクエスト数、未処理のリクエスト数などを記録する。ログインやログアウト、セッションの異常終了、ログイン失敗の記録、同時利用ユーザー数なども記録するかもしれない。何を記録するかはビジネスモデルと密接に関わってくる。

コラム:ログって、Trace文の見栄えをよくしただけのものじゃないよ!

開発者がログ機能を作ると、ついつい自分たちだけにしか意味のないものを出力しがち。お客様やサポート担当がそのログを使うことを考えると、そういった開発者向けの内容は別のログに切り分けておくことをおすすめする。


担当者のつぶやき

みんなの突っ込み