[英]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.