我找到了一种更好的方法,不需要任何其他外部依赖(我认为包含的 System.Diagnostics 功能已经很丰富了)
我以这种方式继承了我需要的两个侦听器(ConsoleTraceListener 和 TextWriterTraceListener):
namespace MyApp
{
namespace Diagnostics
{
public class DateTimeConsoleTraceListener : ConsoleTraceListener
{
public override void Write(string message)
{
base.Write(DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss.fffffff ") + message);
}
}
public class DateTimeTextWriterTraceListener : TextWriterTraceListener
{
public DateTimeTextWriterTraceListener(string fileName) : base(fileName) { }
public override void Write(string message)
{
base.Write(DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss.fffffff ") + message);
}
}
}
}
然后,在 App.config 中:
<sharedListeners>
<add name="ConsoleListener"
type="MyApp.Diagnostics.DateTimeConsoleTraceListener, MyApp">
<filter type="System.Diagnostics.EventTypeFilter"
initializeData="All"/>
</add>
<add name="FileListener"
type="MyApp.Diagnostics.DateTimeTextWriterTraceListener, MyApp"
initializeData="MyApp.log" >
<filter type="System.Diagnostics.EventTypeFilter"
initializeData="All"/>
</add>
</sharedListeners>
希望这可以帮助!