簡體   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