c# - 跟踪日志位置,在哪里查看它们

标签 c# wcf trace system.diagnostics

在开发 MVC 或 WCF 应用程序时,您在哪里看到 Trace.Write(""); 日志?正确的看点是什么?

最佳答案

当使用 System.Diagnostics.Trace 类时,Write 方法写入其跟踪输出“to the trace listeners in the Listeners collection.” 默认情况下,Trace.Listeners 属性仅包含 DefaultTraceListener 的一个实例,它将消息输出到调试器输出窗口。当然,要查看这些跟踪消息,您必须启用调试。

因此,如果您在 Visual Studio 中调试 WCF 服务或 ASP.NET 应用程序,您将在 VS 输出 Pane 中看到跟踪输出。例如,这段代码:

System.Diagnostics.Trace.WriteLine("GetData method was called.");

...导致此输出出现:

debug output

如果您不想运行调试器来查看跟踪输出,您可以删除 DefaultTraceListener 并将其替换为另一个,例如 TextWriterTraceListener。这会将您的跟踪输出到一个文件。这可以通过创建一个包含以下内容的 web.config 文件来完成(或者只需将 system.diagnostics 部分添加到您预先存在的 web.config 中):

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

在那之后(假设您在可以写入输出位置的模式下运行),您的跟踪将输出到指定的文件。

如果您想将跟踪记录写入事件日志而不是文件,您也可以使用 EventLogTraceListener 来实现。 :

<configuration>
  <system.diagnostics>
    <trace autoflush="false" indentsize="4">
      <listeners>
        <add name="myListener"
          type="System.Diagnostics.EventLogTraceListener"
          initializeData="TraceListenerLog" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

请注意确保您的应用在具有写入事件日志的权限的帐户上下文中运行。

您可以使用跟踪执行更多操作(例如将其输出到 ASP.NET 页面本身。您将找到包含更多示例的演练 here

关于c# - 跟踪日志位置,在哪里查看它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25286180/

相关文章:

c# - WPF MediaElement如何从暂停处继续播放?

c# - 如何使用非文本信息扩充 Visual Studio C# 编辑器?

c# - 我们如何将 SOAP 网络服务的返回类型指定为 JSON 格式?

iphone - 在客户端上使用代理对象时在 iOS 上调用 WCF 服务

c# - 在 C# 应用程序中模仿 SQL Server Profiler?

lisp - 如何停止跟踪 lisp 中的函数?

c# - 从 KeyedCollection 添加和检索

wcf - 使用 WCF HTTPS 终结点从控制台应用程序调用 Service Fabric 服务

java - 堆栈跟踪在日志文件中的一行上打印所有内容 (Java)

c# - 这段代码在做什么?