我经常遇到.NET框架中的项目,这些项目很少或没有关于如何使用这些功能的代码示例.在其他场合,有很多例子,但似乎没有一个像规定那样工作.
例证:System.Diagnostics.ConsoleTraceListener类.
从我读过的所有内容和我见过的每个代码示例,当我做的事情如下:
ConsoleTraceListner listener = new ConsoleTraceListener();
listener.WriteLine("Yo");
Run Code Online (Sandbox Code Playgroud)
...我应该看到一个控制台窗口弹出"Yo".然而,不是那个预期的输出,而是将"Yo"写入Visual Studio输出,在那里可以看到正常的跟踪/调试消息.
我已经尝试了每次尝试我用Google搜索的示例包括相应侦听器的配置文件设置,将侦听器添加到Trace.Listeners集合,自定义ConsoleTraceListener类型等等.我甚至只编译到发行版并运行可执行文件(绝对没有任何作用).
我错过了什么?
回答您对Orion Adrian的回答的评论......
a ConsoleTraceListenter或any 的要点TraceListener不是直接调用它 - 它是将它添加到跟踪侦听器集合中,以便代码的其余部分只需要调用Trace.Write等.例如:
using System;
using System.Diagnostics;
class Test
{
static void Main()
{
ConsoleTraceListener listener = new ConsoleTraceListener();
Trace.Listeners.Add(listener);
DoSomething();
Trace.Flush();
}
static void DoSomething()
{
DoSomethingElse();
}
static void DoSomethingElse()
{
// We don't want to have to pass all our logging
// baggage down this far
Trace.WriteLine("In DoSomethingElse");
}
}
Run Code Online (Sandbox Code Playgroud)
使用TRACE定义编译,您可以简单地登录到控制台.就个人而言,我更喜欢使用log4net等更多"oomph"进行日志记录,但跟踪是一个良好的开端.
| 归档时间: |
|
| 查看次数: |
5820 次 |
| 最近记录: |