如何使用 system.diagnostics 添加日志记录到 Windows 事件日志

How to add logging to Windows Event Log using system.diagnostics

我创建了自定义 WCF LOB 适配器。我在其中使用了 Trace class。 我希望 BizTalk 服务器将日志从该适配器写入 Windows 事件日志。

当我将以下部分添加到 BizTalk 主机配置文件时,BizTalk 没有启动。有什么问题吗?

<system.diagnostics>
  <trace autoflush="true">
  <sources>  
    <source name="AzureServiceBusClient" switchValue="Verbose, ActivityTracing">  
      <listeners>  
        <add name="AzureServiceBusTraceListener" />  
      </listeners>  
    </source>  
  </sources>  
    <sharedListeners>
      <add name="AzureServiceBusTraceListener" type="System.Diagnostics.EventLogTraceListener" initializeData="BizTalk Server" />       
    </sharedListeners>
</trace>
</system.diagnostics>

这就是我的跟踪 class 在代码中的创建方式:

//
// Initializes a new instane of  Microsoft.ServiceModel.Channels.Common.AdapterTrace using the specified name for the source
//
static AdapterTrace trace = new AdapterTrace("AzureServiceBusClient");

源应该是跟踪的单独项目,而不是像您拥有的那样嵌套。我想你一定是忘了自己终止跟踪标签,然后把结束标签加进去,使之无效。

将其更正为以下应该有望解决 BizTalk 未启动的问题。

<system.diagnostics>
    <trace autoflush="true" />
    <sources>  
        <source name="AzureServiceBusClient" switchValue="Verbose, ActivityTracing">  
            <listeners>  
                <add name="AzureServiceBusTraceListener" />  
            </listeners>  
        </source>  
    </sources>  
    <sharedListeners>
        <add name="AzureServiceBusTraceListener" type="System.Diagnostics.EventLogTraceListener" initializeData="BizTalk Server" />       
    </sharedListeners>
</system.diagnostics>

下面的示例来自 Diagnostic Tracing and Message Logging

<system.diagnostics>
    <sources>
      <source name ="System.ServiceModel" switchValue="Verbose">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name ="System.ServiceModel.MessageLogging" 
              switchValue="Verbose, ActivityTracing">        
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name ="System.Runtime.Serialization" switchValue="Verbose">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
   </sources>
   <sharedListeners>
      <add name="xml" type="System.Diagnostics.XmlWriterTraceListener"              
           traceOutputOptions="LogicalOperationStack" 
           initializeData="C:\log\WCFTrace.svclog" />
   </sharedListeners>
   <trace autoflush="true" />
  </system.diagnostics>
  <system.serviceModel>
    <diagnostics>
      <messageLogging 
           logEntireMessage="true" 
           logMalformedMessages="false"
           logMessagesAtServiceLevel="true" 
           logMessagesAtTransportLevel="false"/>
    </diagnostics>    
  </system.serviceModel>