【问题标题】:How to add logging to Windows Event Log using system.diagnostics如何使用 system.diagnostics 将日志记录添加到 Windows 事件日志
【发布时间】:2018-02-26 08:02:52
【问题描述】:

我创建了自定义 WCF LOB 适配器。我在其中使用 Trace 类。 我希望 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>

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

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

【问题讨论】:

  • 当您尝试启动主机实例时,您是否在 Windows 事件日志中收到任何错误?您还说您正在尝试发送到 Windows 事件日志,但您似乎正在使用 Azure 服务总线跟踪侦听器,您能解释一下这种差异吗?
  • 听众也应该是initializeData="TraceListenerLog"而不是initializeData="BizTalk Server"
  • 你能澄清一下吗?您是否编写了要与 WCF 自定义一起使用的自定义绑定,或者您是否尝试从现有适配器/绑定添加写入事件日志事件?

标签: c# wcf biztalk event-log system.diagnostics


【解决方案1】:

源应该是跟踪的单独项目,而不是像您拥有它们那样嵌套。我想你一定是忘记了自行终止跟踪标签,然后添加了结束标签,使其无效。

将其更正为以下应该有望解决您的 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>

【讨论】:

    猜你喜欢
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    相关资源
    最近更新 更多