2011-02-09 3 views
2

を含めますリクエストURLのテンプレート項目がありますか?クエリ文字列パラメータを指定したリクエストURLがなければ、エラーをデバッグすることは困難です。エンタープライズライブラリ3.1ログフォーマッタテンプレートは、私たちは、カスタムWebアプリはEL 3.1を使用すると、ロギングの設定で書式テンプレートはこのように構成されてEKTRONのV8.0を使用して構築されていたURLリクエスト

答えて

1

リクエストURL専用のテンプレートアイテムはありません。情報が記録されるようにするには、拡張プロパティに自分自身を要求URLを追加することができます。

string requestUrl = System.Web.HttpContext.Current.Request.Url.AbsoluteUri; 

Dictionary<string, object> dictionary = new Dictionary<string, object>(); 
dictionary.Add("RequestUrl", requestUrl); 

Logger.Write("My message", dictionary); 

をフォーマッタがすべての辞書のキーをログに記録されているので/あなたのRequestUrlがログに表示されます値。

別の方法として、興味のある特定のWeb情報を入力するために独自のIExtraInformationProviderを作成することがあります。これは、エンタープライズライブラリインターフェイスを使用することを除いてはまったく同じです。

public class WebContextInformationProvider : IExtraInformationProvider 
{ 
    public void PopulateDictionary(IDictionary<string, object> dict) 
    { 
     dict["RequestUrl"] = System.Web.HttpContext.Current.Request.Url.AbsoluteUri; 
    } 
} 

Dictionary<string, object> dictionary = new Dictionary<string, object>(); 
WebContextInformationProvider webContext = new WebContextInformationProvider(); 

webContext.PopulateDictionary(dictionary); 

Logger.Write("My message", dictionary); 
+0

私は3.1ロギングのmsdnの記事を見てきましたが、ドキュメントがテンプレートのどこにあるのかわかりません。何か案は? 唯一実行可能な解決策だと思うので、私はあなたの答えを受け入れます。すばらしい、明確で簡潔な答えをありがとう。 –

+0

@Dave:テンプレートに関する正式な文書が見つかりませんでした。これは、[The Definitive Guide to Enterprise Library](http://books.google.ca/books?id=eZXOfFiv6A4C&lpg=PA298&ots=Wx-h_siJnE&pg=PA298#v=onepage&q&f=false)からわかる最高のものです。 –

関連する問題