「アプリケーション アーキテクチャ ガイド 2.0」の実装 - Webアプリのログ
アプリケーション アーキテクチャ ガイド 2.0 の [第 21 章: Web アプリケーションの設計] に
[設計に関する具体的な問題]という項目があります。
今回はログの実装について調べ、サンプルを作ってみました。
ここでのログとは、エラー時のログではなく、ユーザーのオペレーションを記録するログです。
サンプルの概要は以下のとおりです。
・ユーザーのオペレーションを記録するため、全ページのLoad時にログを出力する。
・ログの出力にはMicrosoft Enterprise Library 5.0を使用する。
・ログはテキストファイルに出力する。
以下、その実装方法とソースです。
1.参照設定の追加。
Microsoft.Practices.EnterpriseLibrary.Logging.dll
Microsoft.Practices.EnterpriseLibrary.Common.dll
Microsoft.Practices.ServiceLocation.dll
を、C:\Program Files\Microsoft Enterprise Library 5.0\Bin から選択して参照設定に追加します。
2.Site.Master.csの編集。
全ページのLoad時にログを出力するため、マスターページのPage_Load()にて
ログを出力することにします。
using Microsoft.Practices.EnterpriseLibrary.Logging;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
をソースの上部に追加しています。
またPage_Load()内で、タイムスタンプ、メッセージを編集して
ログに出力しています。
3.web.configの編集。
「Enterprise Library Configuration」を使用し、web.configを編集します。
「Enterprise Library Configuration」は「すべてのプログラム」-「Microsoft patterns & practicies」より
選択します。
「Enterprise Library Configuration」でWeb.configを開き、以下の設定を行います。
3-1.LoggingTarget Listenersの設定。
Flat File Trace Listenerを新規に追加することで、テキストファイルにログを出力するようにします。
このとき、Formatterには「Text Formatter」を指定します。
3-2.Categories、Special Categoriesの設定。
それぞれのListenersに「Flat File Trace Listener」を指定します。
3-3.Log Message Formatterの設定。
出力されるログを分かりやすくするため、Template欄よりTimestamp, Message以外を削除します。
4.trace.logの確認。
アプリを実行し、いくつかの画面を遷移してみます。
Web.configと同じフォルダに「trace.log」が出力されるはずです。
Site.MasterのPage_Load()で設定したタイムスタンプ、メッセージが出力されていることが
分かると思います。
以上です。実際の開発時では、ユーザー名や、イベントが発生したコントロールのIDなどを
出力することになるかと思います。