2
を含めますリクエストURLのテンプレート項目がありますか?クエリ文字列パラメータを指定したリクエストURLがなければ、エラーをデバッグすることは困難です。エンタープライズライブラリ3.1ログフォーマッタテンプレートは、私たちは、カスタムWebアプリはEL 3.1を使用すると、ロギングの設定で書式テンプレートはこのように構成されてEKTRONのV8.0を使用して構築されていたURLリクエスト
を含めますリクエストURLのテンプレート項目がありますか?クエリ文字列パラメータを指定したリクエストURLがなければ、エラーをデバッグすることは困難です。エンタープライズライブラリ3.1ログフォーマッタテンプレートは、私たちは、カスタムWebアプリはEL 3.1を使用すると、ロギングの設定で書式テンプレートはこのように構成されてEKTRONのV8.0を使用して構築されていたURLリクエスト
リクエスト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);
私は3.1ロギングのmsdnの記事を見てきましたが、ドキュメントがテンプレートのどこにあるのかわかりません。何か案は? 唯一実行可能な解決策だと思うので、私はあなたの答えを受け入れます。すばらしい、明確で簡潔な答えをありがとう。 –
@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)からわかる最高のものです。 –