2

Enterprise Library 6 を使用してロギングを実装し、ASP.NET MVC 4 Web アプリケーションでユーザー トレースを実行しています。これを実現するためにトレーサーを使用しており、LogEntries をデータベースに書き込んでいます。これは問題なく動作しますが、ここで、Tracer エントリの ExtendedProperties フィールドに追加情報を追加したいと思います。通常の LogEntry オブジェクトでは実行できますが、Tracer では実行できないようです。これを達成する方法はありますか?

これが私がやっていることです:

using(traceManager.StartTrace(LogCategory.UserTracing.ToString(), activityId))
{
Doit();
}

Tracer を変数に割り当てても、それが書き込んでいるログ エントリに影響を与えることはできません。TraceManager クラスも確認しましたが、これとは何の関係もありません。

私が達成したいのは、次のようなものです。

LogEntry e = new LogEntry();
e.ExtendedProperties.Add("key", "value");

前もって感謝します、

ロバート

4

1 に答える 1

2

このTracerクラスは、作成された を公開しないLogEntryため、すぐに必要なものを実現する方法はありません。

Tracerおそらく、拡張プロパティのサポートを追加する最も簡単な方法は、拡張プロパティを受け入れる独自のカスタム実装のソース コードを入手して作成することです。TraceManagercustomを使用するカスタムを作成することもできますTracer

また、標準ではFormattedDatabaseTraceListener拡張プロパティをログに記録しないため、それを行うにはカスタム トレース リスナーを作成する必要があることに注意してください (エンタープライズ ライブラリ サンプル プロジェクトで 1 つのアプローチを見つけることができます)。

于 2013-10-04T06:24:57.700 に答える