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


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

我想做的是将大部分信息放入一个文档中,这样就不会有 10 个不同的文档出现相同的错误。即使编写我自己的异常格式化程序(http://msdn.microsoft.com/en-us/library/ff664587(v=pandp.50).aspx),我似乎仍然无法绕过对自定义侦听器的多次调用。 Write() 方法,每个方法都会在我的 mongodb 集合中创建一个新文档。

我的 Entlib 经验是有限的,但除非我从头开始编写整个 ExceptionFormatter,否则我不知道如何解决它。有人知道如何解决这个问题吗?

4

1 回答 1

1

发现了我的问题。事实证明,我错过了侦听器上的 TraceData() 方法实现。一旦我告诉它在那里做什么,它就会像处理单个 WriteLine() 调用一样处理错误消息。

于 2012-04-18T15:41:32.280 回答