2012-10-02 197 views
2

在编写自定义TraceListener时,我该如何强制writeheader,data/messsage和writefooter成为一个谨慎的记录?具体来说,有问题的自定义tracelisteners会写入非基于文件的源,例如数据库或事件流。我需要将writeHeader,TraceListener中的writefooter基方法忽略或以某种方式打包成单个写事件。TraceListener页眉和页脚

回答

3

Here is a good article关于如何定制TraceListener的工作,这也解释了何时和何时调用WriteHeaderWriteFooter。避免WriteHeaderWriteFooter的技巧显然是要覆盖TraceData和/或TraceEvent调用。

this SO thread中对此问题也有一些讨论。

最后,我鼓励你看看Ukadc.Diagnostics这是一个非常酷的库,用于扩展System.Diagnostics,并提供了一些很好的方法来实现一些log4net/NLog类型的输出格式。关于这个库在this SO thread有一点讨论。

祝你好运!

+0

thx为文章,TraceData方法的好东西。 – BozoJoe

+0

伟大的文章。值得一读的是GetSupportedAttributes部分。 –