【问题标题】:Diagnostics, where to read the Trace.TraceInformation?诊断,从哪里读取 Trace.TraceInformation?
【发布时间】:2016-12-23 10:03:30
【问题描述】:
Trace.AutoFlush = true;
Trace.TraceInformation(string.Format("Try starting: {0}", System.Reflection.Assembly.GetExecutingAssembly().GetName()));
Trace.Flush();

我已阅读:How to Check the Application Event Log for Errors

但我找不到任何痕迹!我做错了什么?

【问题讨论】:

  • 您能解释一下为什么您希望跟踪最终会出现在事件日志中吗?您是否将其配置为在那里写入?首先阅读MSDN: Tracing and Instrumenting Applications,特别是“跟踪输出”部分。
  • 对不起,我早就解决了这个问题!我想删除这个问题。我从另一个项目中复制了代码和配置,现在可以使用了。
  • 这不是它的工作原理,尤其是一旦被回答。另请参阅How can I delete my post on Stack Overflow?
  • @CodeCaster :请将此问题标记为由管理员删除。

标签: c# .net system.diagnostics


【解决方案1】:

Trace 可以输出到多个监听器。

这些可以包括调试(Visual Studio)、文件甚至数据库侦听器。

默认情况下,Trace 输出到 Visual Studio output window

本文介绍如何配置文件跟踪侦听器:How to: Create and Initialize Trace Listeners

System.Diagnostics.Debug 和 System.Diagnostics.Trace 类将消息发送到称为侦听器的对象,这些侦听器接收和处理这些消息。 System.Diagnostics.DefaultTraceListener 就是一个这样的监听器,它会在启用跟踪或调试时自动创建和初始化。如果您希望将 Trace 或 Debug 输出定向到任何其他源,则必须创建并初始化其他跟踪侦听器。

通过 app.config:

<configuration>
  <system.diagnostics>
    <trace autoflush="false" indentsize="4">
      <listeners>
        <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TextWriterOutput.log" />
        <remove name="Default" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

或通过代码:

Trace.Listeners.Add(new TextWriterTraceListener("TextWriterOutput.log", "myListener"));

如果您想记录到事件日志,那么您可以使用Event Log Trace Listener

【讨论】:

  • 谢谢你,andy,但我已经知道如何写入文件了。我想写入应用程序事件日志。
  • 哦,好吧,您需要找到一个将写入应用程序事件日志的跟踪侦听器。
  • 我添加了一个指向我认为你想要的跟踪侦听器的链接。
  • 我支持你。甚至接受了你的回答。我不应该问这个问题,因为我可以通过打开另一个我在这里维护的项目来解决它。
猜你喜欢
  • 2013-07-20
  • 1970-01-01
  • 1970-01-01
  • 2019-01-04
  • 2014-12-19
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多