簡體   English   中英

無法將偵聽器注冊到 System.Diagnostics.Tracing.EventSource

[英]Can't register listeners to System.Diagnostics.Tracing.EventSource

我有一個由不同應用程序使用的組件。 在這個組件中,我們可能需要日志記錄,所以我想我會使用一個 EventSource。

組件為netstandard2.0,使用該組件的應用程序為.NET Framework 4.6.1。

這是我到目前為止在我的組件中所擁有的:

public class XEvents
{
    public const int BeforeSendingRequest = 1;
    public const int AfterSendingRequest = 2;
}

[EventSource(Name = "XEventSource")]
public class XEventSource : EventSource
{
    public static XEventSource Log = new XEventSource();

    [Event(XEvents.BeforeSendingRequest, Message = "Request: {0}", Level = EventLevel.Verbose, Keywords = EventKeywords.WdiDiagnostic)]
    public void BeforeSendingRequest(string request) { if (IsEnabled()) WriteEvent(XEvents.BeforeSendingRequest, request); }

    [Event(XEvents.AfterSendingRequestToCsam, Message = "Response: {0}", Level = EventLevel.Verbose, Keywords = EventKeywords.WdiDiagnostic)]
    public void AfterSendingRequest(string response) { if (IsEnabled()) WriteEvent(XEvents.AfterSendingRequest, response); }

}

在應用程序中,我將以下內容添加到 app.config:

  <system.diagnostics>
    <sources>
      <source name="NamespaceOfEventSource.XEventSource" switchValue="Verbose">
        <listeners>
          <add name="XEventSourceListener" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add name="XEventSourceListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="X.log" traceOutputOptions="ProcessId, DateTime" />
    </sharedListeners>
    <trace autoflush="true" />
  </system.diagnostics>

但是當我運行應用程序時,bin 文件夾中沒有 X.log。 當我調試到組件的事件源時,我看到 Enabled() 返回 false。

我懷疑聽眾沒有綁定到 EventSource。 但我真的不明白我做錯了什么。

在此先感謝您提供給我的任何信息!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM