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

Jue*_*gen 2 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>
Run Code Online (Sandbox Code Playgroud)

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

谢谢,Juergen

Fue*_*led 6

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

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

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

<listeners>
    <add name="FileListener"
     type="MyNamespace.FormattedTextTracer, MyNamespace"
     initializeData="Logs\QFXLog.txt" />
    <remove name="Default" />
</listeners>
Run Code Online (Sandbox Code Playgroud)