2017-09-17 5 views
0

hinzufügen Ich habe benutzerdefinierte WCF LOB Adapter erstellt. Und ich benutze Trace-Klasse darin. Ich möchte, dass BizTalk-Server Protokoll von diesem Adapter in das Windows-Ereignisprotokoll schreibt.Wie Logging zu Windows Event Log mit System.diagnostics

Wenn ich Abschnitt unterhalb der BizTalk-Host-Konfigurationsdatei hinzufügen, wird BizTalk nicht gestartet. Was ist daran falsch?

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

Dies ist, wie meine Trace-Klasse im Code erstellt wird:

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

Haben Sie Fehler in dem Windows-Ereignisprotokoll erhalten, wenn Sie die Host-Instanz versuchen zu beginnen? Sie sagen auch, dass Sie versuchen, an das Windows-Ereignisprotokoll zu senden, aber Sie scheinen einen Azure Service Bus-Ablaufverfolgungslistener zu verwenden. Können Sie diese Diskrepanz erklären? – Dijkgraaf

+0

Auch sollte der Listener 'initializeData =" TraceListenerLog "' anstelle von 'initializeData =" BizTalk Server "' sein? – Dijkgraaf

+0

Können Sie klären? Haben Sie eine benutzerdefinierte Bindung geschrieben, die mit der benutzerdefinierten WCF-Datei verwendet werden soll, oder möchten Sie Ereignisprotokollereignisse aus einem vorhandenen Adapter/Bindung schreiben? –

Antwort

2

Die Quellen ein separates Element in die Spur sein sollte, anstatt verschachtelt, wie Sie sie haben. Ich denke, Sie müssen vergessen haben, das Trace-Tag selbst zu beenden, und fügte dann das End-Tag hinzu, wodurch es ungültig wurde.

Korrigieren Sie es unten, sollte hoffentlich Ihren BizTalk nicht starten.

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

Unten Beispiel von 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> 
Verwandte Themen