默认实现将输出显示为':::',现在我不想要这种格式,我想切断源名称和偶数,因为它对我来说完全没用。 有什么简单的方法可以实现吗?
我目前的解决方法是从TextWriterTraceListener派生并覆盖TrackEvent方法。使用reflector来复制默认实现,只需删除writerHeader函数调用。
答案 0 :(得分:0)
您可以从TextWriterTraceListener创建派生类并重写TraceEvent以更改输出格式。最好覆盖所有TraceEvent方法。 e.g。
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)));
}
}