C # Добавить нижний колонтитул в прослушиватель трассировки при закрытии

#c# #tracelistener

#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="LogsQFXLog.txt" />
    <remove name="Default" />
  </listeners>
</trace>
  

Я хочу написать конечный нижний колонтитул, когда этот прослушиватель закрыт.
Какие записи должны быть определены в конфигурации (если есть?) и где нужно определить строку нижнего колонтитула в коде?

Спасибо, Юрген

Ответ №1:

Я не знаю ни одного способа справиться с этим непосредственно в файле 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="LogsQFXLog.txt" />
    <remove name="Default" />
</listeners>