2

私のアプリケーションは、Trace オブジェクトを使用して情報をログに記録します。情報は TextWriterTraceListener を使用してファイルにキャプチャされ、完全に機能します。ただし、情報を Web サービスに記録する別の TraceListerner を追加したいと考えています。つまり、HttpTraceListener が必要です。さらに、インテリジェントなものが必要です。すべてのログ エントリに対して HTTP リクエストを表示したくありません。

どうやってそのようなものを構築しますか?私は TraceListener を継承する必要があることを知っています (ドキュメントはやや不可解です...) が、HttpTraceListener が既に存在するかどうかは誰にもわかりませんか? 車輪の再発明はしたくない...

ありがとう!

4

1 に答える 1

1

変数のロギングに関する要件、つまりすべてのエントリに対してリクエストを発行しないという要件のために、独自のリスナーを作成する必要があることは間違いありません。

TraceListener に関する MSDN ドキュメント ( http://msdn.microsoft.com/en-us/library/system.diagnostics.tracelistener(VS.80).aspx )

「このクラスから継承して、Debug および Trace クラスのカスタム リスナーを実装します。少なくとも、Write および WriteLine メソッドを実装する必要があります。さらに、Fail、Close、および Flush メソッドを実装できます。」

私はから始めます:

  1. TraceListener から継承します。
  2. Write/WriteLine メソッドを実装する
  3. Write にロジックを追加して、要求を Web サービスに送信します。基本クラスの実装を使用する場合、WriteLine は単純に行末記号を追加します。
  4. アプリケーションの必要に応じて、Fail/Close/Flush をオーバーライドします。

これら 5 つのメソッドは、リスナーを実装するために必要なすべてのアクセスを提供します。

于 2009-02-02T15:34:13.360 に答える