繁体   English   中英

如何在 ASP.NET C# Web 应用程序中使用 TraceSource.TraceEvent

[英]How to use TraceSource.TraceEvent in a ASP.NET C# web application

在阅读了这个这个msdn 链接之后,我需要在我正在开发的 Web 应用程序中使用TraceSource.TraceEvent

我正在处理一个已经构建的项目,我正在对其进行更改并更新它。

这就是我的 web.config 的定义方式。

<system.diagnostics>
<sources>
    <listeners>
    <clear/>
    <add name="xml"/>
  </listeners>
</sources>

<sharedListeners>
  <add name="xml" type="System.Diagnostics.XmlWriterTraceListener"
                           traceOutputOptions="Callstack,LogicalOperationStack,ProcessId"
                           initializeData="C:\logs\Test.svclog"/>
</sharedListeners>

<trace autoflush="true" />

 </system.diagnostics>

我尝试使用的代码

var traceSource = new TraceSource("TraceSourceName");
traceSource.TraceEvent(TraceEventType.Error, 2, "Hello World !");

但是没有记录到 Test.svclog 文件,我在 C:\\logs\\ 文件夹下创建了一个空文件 Test.svclog。

请帮我解决这个问题。

我认为您忘记了关闭源。

只需将代码修改为此

var traceSource = new TraceSource("TraceSourceName");
traceSource.TraceEvent(TraceEventType.Error, 2, "Hello World !");
traceSource.Close();

您可以在msdn上的这篇文章中调整您的源代码部分

http://msdn.microsoft.com/zh-CN/library/ms228984(v=vs.90).aspx

您可以使用Nlog更好地控制日志记录,因为它也带有内置的 TraceListener 侦听器:

如果您在 dll 文件中将TraceSource定义为:


//dll_01.dll
var traceSource = new TraceSource("TraceSource1");
traceSource.TraceEvent(TraceEventType.Error, 2, "Hello World from dll 01!");

//dll_02.dll
var traceSource = new TraceSource("TraceSource2");
traceSource.TraceEvent(TraceEventType.Error, 2, "Hello World from dll 02!");

//dll_03.dll
var traceSource = new TraceSource("TraceSource3");
traceSource.TraceEvent(TraceEventType.Error, 2, "Hello World from dll 03!");

然后您可以将nlog添加为共享侦听器,并将您的App.Config配置为

<system.diagnostics>
    <sources>
      <source name="TraceSource1" switchValue="All">
        <listeners><add name="nlog" /></listeners>
      </source>
      <source name="TraceSource2" switchValue="All">
        <listeners><add name="nlog" /></listeners>
      </source>
      <source name="TraceSource3" switchValue="All">
        <listeners><add name="nlog" /></listeners>
      </source>   
    </sources>
    <sharedListeners>
      <add name="nlog" type="NLog.NLogTraceListener, NLog" />
    </sharedListeners>
    <trace autoflush="true" indentsize="4">
      <listeners>
        <add name="nlog" />
        <remove name="Default" />
      </listeners>
    </trace>
</system.diagnostics>

其余配置将在nLog配置文件中完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM