我只是设置我的项目以使用TraceSource / TraceListener并添加了一个默认侦听器,使用new ConsoleTraceListener()
将数据记录到输出窗口。我每行收到很多垃圾前缀。有什么方法可以阻止这种情况吗?
FluentFTP Verbose: 0 : InterNetwork: 123.123.123.123
FluentFTP Verbose: 0 : 421 Too many connections (8) from this IP
FluentFTP Verbose: 0 : Disposing FtpClient object...
FluentFTP Information: 0 : QUIT
我想要跟踪的字符串:
InterNetwork: 123.123.123.123
421 Too many connections (8) from this IP
Disposing FtpClient object...
QUIT
我使用的语法是:
private static readonly TraceSource m_traceSource = new TraceSource("FluentFTP") {
Switch = new SourceSwitch("sourceSwitch", "Verbose") { Level = SourceLevels.All }
};
...
m_traceSource.TraceEvent(TraceLevelTranslation(eventType), 0, message);
修改:此问题有here,here和here的答案,但其中没有一个涵盖了无法修改TraceListener的用例,只有TraceSource。
答案 0 :(得分:1)
我通过显式写入跟踪源的侦听器而不是调用TraceEvent来做类似的事情。如果您愿意这样做,您可以执行类似以下扩展方法的操作。请注意,它必须吃掉跟踪侦听器抛出的所有异常:
m_TraceSource.Emit( TraceLevelTranslation(eventType), message );
然后你可以用:
来调用它{{1}}