C#关闭时向跟踪侦听器添加页脚

时间:2011-10-14 10:49:48

标签: c# tracelistener

如何将页脚添加到app.config中定义的跟踪侦听器:

<system.diagnostics>
<switches>
  <!-- Set loglevel for diagnostic messages
  (0=none, 1=errors, 2=warnings, 3=info, 4=verbose) -->
  <add name="logLevel" value="4" />
</switches>
<trace autoflush="true" indentsize="4">
  <listeners>
    <add name="FileListener"
         type="System.Diagnostics.TextWriterTraceListener"
         initializeData="Logs\QFXLog.txt" />
    <remove name="Default" />
  </listeners>
</trace>

当这个监听器关闭时,我想写一个结尾。 在配置中定义了哪些条目(如果有的话?)以及必须在代码中定义页脚字符串的位置?

谢谢, 尔根

1 个答案:

答案 0 :(得分:6)

我不知道有什么方法可以直接在app.config文件中处理它,但你可以实现一个继承TextWriterTraceListener的类,然后覆盖它的Close方法:

namespace MyNamespace
{
    public class FormattedTextTracer : TextWriterTraceListener
    {
        public override void Close()
        {
             // Write footer
             Writer.WriteLine("==== Footer ====");
             Writer.Flush();
             base.Close();
        }
    }
}

在app.config文件中,将侦听器类型替换为您的类:

<listeners>
    <add name="FileListener"
     type="MyNamespace.FormattedTextTracer, MyNamespace"
     initializeData="Logs\QFXLog.txt" />
    <remove name="Default" />
</listeners>