1

Web アプリの例外ハンドラーとして Entlib 5.0 を使用してカスタム MongoDB リスナーを作成しました。空行を含む、以下のすべての「行」に対してドキュメントエントリを作成するという事実を除いて、これはうまく機能します。

----------------------------------------
Timestamp: 4/17/2012 4:13:50 PM
Message: HandlingInstanceID: c3c5f58a-89b3-4b64-b05d-3f72f998bab4
An exception of type 'System.NullReferenceException' occurred and was caught.
-----------------------------------------------------------------------------
04/17/2012 16:13:50
Type : System.NullReferenceException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message : Object reference not set to an instance of an object.
Source : MyCo.Webservices.TheCoolService
Data : System.Collections.ListDictionaryInternal
TargetSite : System.String TestExceptionHandling()
Stack Trace :    at Logging.TestExceptionHandling() in C:\tfs\Development\Source\MyCo.Webservices.TheCoolService\Logging\Logging.cs:line 55


----------------------------------------

私がやりたいのは、この情報のほとんどを 1 つのドキュメントにまとめて、同じエラーに対して 10 の異なるドキュメントを持たないようにすることです。独自の例外フォーマッタ ( http://msdn.microsoft.com/en-us/library/ff664587(v=pandp.50).aspx ) を書いても、まだ customlistener への複数の呼び出しを回避できないようです。 Write() メソッドで、それぞれが私の mongodb コレクションに新しいドキュメントを作成します。

私の Entlib の経験は限られていますが、ExceptionFormatter 全体をゼロから作成しない限り、それを回避する方法がわかりません。これを回避する方法はありますか?

4

1 に答える 1

1

私の問題を見つけました。リスナーに TraceData() メソッドの実装がなかったことがわかりました。そこで何をすべきかを伝えると、1 回の WriteLine() 呼び出しのようにエラー メッセージを処理しました。

于 2012-04-18T15:41:32.280 に答える