![](/img/trans.png)
[英]Error while using TraceSource.TraceEvent in a ASP.NET C# web application
[英]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.