编写自定义TraceListener时,如何强制writeheader,data / messsage和writefooter成为一个谨慎的记录?具体而言,有问题的自定义tracelisteners会写入非基于文件的源,例如数据库或事件流。我需要将traceHistener中的writeHeader,writefooter基本方法忽略或以某种方式打包到单个写事件中。
答案 0 :(得分:3)
TraceListener
如何工作的 Here is a good article,其中还解释了何时以及WriteHeader
和WriteFooter
被调用。避免WriteHeader
和WriteFooter
的诀窍显然是覆盖TraceData和/或TraceEvent来电。
this SO thread还讨论了这个问题。
最后,我建议你看看Ukadc.Diagnostics它是一个非常酷的库,用于扩展System.Diagnostics
,并提供了一个很好的方法来实现一些log4net / NLog-like输出格式。在this SO thread中有一些关于这个库的讨论。