вы можете создать производный класс из TextWriterTraceListener и переопределить TraceEvent для изменения формата вывода. Было бы лучше переопределить все методы TraceEvent.
например,
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)));
}
}