.net 如何更改TextWriterTraceListener的输出格式?

.net 如何更改TextWriterTraceListener的输出格式?,.net,debugging,trace,.net,Debugging,Trace,默认的实现将输出显示为“::”,现在我不需要这种格式,我想切断sourcename和eventid,因为这对我来说完全没有用。 有什么简单的方法可以做到这一点吗 我当前的解决方法是从TextWriterTraceListener派生并重写TrackEvent方法。使用reflector复制默认实现,只需删除writerHeader函数调用 您可以从TextWriterTraceListener创建派生类,并重写TraceEvent以更改输出格式。最好覆盖所有TraceeEvent方法。 e、 g

默认的实现将输出显示为“::”,现在我不需要这种格式,我想切断sourcename和eventid,因为这对我来说完全没有用。 有什么简单的方法可以做到这一点吗


我当前的解决方法是从TextWriterTraceListener派生并重写TrackEvent方法。使用reflector复制默认实现,只需删除writerHeader函数调用

您可以从TextWriterTraceListener创建派生类,并重写TraceEvent以更改输出格式。最好覆盖所有TraceeEvent方法。 e、 g


你在使用什么技术?DotNet,C#,我使用默认的TextWriterTraceListener
class TextWriterTraceListenerCustomOutput:TextWriterTraceListener
{
    public TextWriterTraceListenerCustomOutput(string fileName):base(fileName)
    {
    }

    public override void Write(string message)
    {
        base.Write(String.Format("[{0}]:{1}",DateTime.Now,message));
    }

    public override void WriteLine(string message)
    {
        base.WriteLine(String.Format("[{0}]:{1}", DateTime.Now, message));
    }

    public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string message)
    {
        //base.TraceEvent(eventCache, source, eventType, id, message);
        if(String.IsNullOrEmpty(message)) return;
        WriteLine(String.Format("{0}:{1}:{2}:{3}",source, eventType,Enum.GetName(typeof(LogId),id),message.Replace("\r",string.Empty).Replace("\n",string.Empty)));
    }
}