BSA / Logging Services


ロギングサービス

要約

良いログを実装する複雑さを抽象化し、開発チームにサービスとして提供することが役に立つと考えた。実際のロギングサービスの実装はアーキテクチャによって異なるが、ほとんどの場合はシングルトンの形態である。中央集権型のサービスとしてログファイルを実装すると以下のような利点がある。

国際化
ソースコード内にて、指定されたログ項目を必要に応じて追加データを渡し、関連づけられた識別子でロギングサービスを呼び出せる。ロギングサービスはこの識別子を使ってログ項目を国際化し、ログファイルに書き込む。
統一時間順序
マルチスレッドアプリケーションでロギング要求があるとスレッド実行のわずかな違いにより順序がバラバラになることがある。ロギングサービスは、ログ要求が良識ある態度でログファイルに書き込まれることを確かめられる。また単一のコンポートネントのみがタイムスタンプを生成するため、ログ項目が順序がバラバラになる可能性を減らせる。
柔軟な出力先
ロギングサービスは実行時に設定ファイル経由でログ項目の出力先を選択できる。これにより開発者に対して何をログすべきかを中央集権化し、どこにログを書き込むかを個別に選択できる。
複数インスタンスまたはサーバ間での統合
複数インスタンスのアプリケーションが一台以上のサーバで動いている環境を運用している場合、様々なデータの曖昧さを解消するために追加情報をログファイル名またはコンテンツに追加することを検討しよう。例としてプロセスやスレッドID、ホストマシンのIPアドレスなどが含まれる。

担当者のつぶやき

みんなの突っ込み