Ablaufverfolgung und NachrichtenprotokollierungTracing and Message Logging

In diesem Beispiel wird das Aktivieren der Ablaufverfolgung und Nachrichtenprotokollierung veranschaulicht.This sample demonstrates how to enable tracing and message logging. Die resultierende ablaufverfolgungen und Nachrichtenprotokollen mit angezeigt werden die Service Trace Viewer-Tool (SvcTraceViewer.exe).The resulting traces and message logs are viewed using the Service Trace Viewer Tool (SvcTraceViewer.exe). Dieses Beispiel basiert auf der Einstieg.This sample is based on the Getting Started.

Hinweis

Die Setupprozedur und die Buildanweisungen für dieses Beispiel befinden sich am Ende dieses Themas.The setup procedure and build instructions for this sample are located at the end of this topic.

AblaufverfolgungTracing

Windows Communication Foundation (WCF) verwendet, die definierten Ablaufverfolgungsmechanismus der System.Diagnostics Namespace.Windows Communication Foundation (WCF) uses the tracing mechanism defined in the System.Diagnostics namespace. In diesem Ablaufverfolgungsmodell werden Ablaufverfolgungsdaten von Ablaufverfolgungsquellen erzeugt, die von Anwendungen implementiert werden.In this tracing model, trace data is produced by trace sources that applications implement. Jede Quelle wird durch einen Namen identifiziert.Each source is identified by a name. Ablaufverfolgungsconsumer erstellen Ablaufverfolgungslistener für die Ablaufverfolgungsquellen, für die sie Informationen abrufen möchten.Trace consumers create trace listeners for the trace sources for which they want to retrieve information. Sie müssen einen Listener für die Ablaufverfolgungsquelle erstellen, um Ablaufverfolgungsdaten zum empfangen.To receive trace data, you must create a listener for the trace source. In WCF, dies kann geschehen, indem Hinzufügen des folgenden Codes in der der Dienst- oder Client Konfigurationsdatei indem die Dienstmodell-Ablaufverfolgungsquelle festlegen switchValue:In WCF, this can be done by adding the following code to either the service’s or client’s configuration file by setting the Service Model trace source switchValue:

<system.diagnostics>  
    <sources>  
      <source name="System.ServiceModel" switchValue="Information,ActivityTracing"  
        propagateActivity="true">  
        <listeners>  
          <add name="xml" />  
        </listeners>  
      </source>  
      <source name="System.ServiceModel.MessageLogging">  
        <listeners>  
          <add name="xml" />  
        </listeners>  
      </source>  
    </sources>  
    <sharedListeners>  
      <add initializeData="C:\logs\TracingAndLogging-service.svclog" type="System.Diagnostics.XmlWriterTraceListener"  
        name="xml" />  
    </sharedListeners>  
    <trace autoflush="true" />  
</system.diagnostics>  

Weitere Informationen zu Ablaufverfolgungsquellen, finden Sie im Abschnitt Ablaufverfolgungsquelle in der Konfigurieren der Ablaufverfolgung Thema.For more information about trace sources, see the Trace Source section in the Configuring Tracing topic.

Aktivitätsablaufverfolgung und WeitergabeActivity Tracing and Propagation

Mit ActivityTracing aktiviert und propagateActivity festgelegt true in die system.ServiceModel Ablaufverfolgungsquellen für Client und Dienst Korrelation von ablaufverfolgungen in logischen Verarbeitungseinheiten (Aktivitäten), geben Sie über Aktivitäten innerhalb von Endpunkten ( durch aktivitätsübertragungen) und über Aktivitäten über mehrere Endpunkte (über die ID-Aktivitätsweitergabe).Having ActivityTracing enabled and propagateActivity set to true in the system.ServiceModel trace sources for both the client and service provide correlation of traces within logical units of processing (activities), across activities within endpoints (through activity transfers), and across activities spanning multiple endpoints (through activity ID propagation).

Mithilfe dieser drei Mechanismen (Aktivitäten, Übertragungen und Weitergabe) können Sie die Grundursache eines Fehlers schneller mit dem Tool Service Trace Viewer ermitteln.These three mechanisms (activities, transfers, and propagation) can help you locate the root cause of an error more quickly using the Service Trace Viewer tool. Weitere Informationen finden Sie unter mithilfe von Service Trace Viewer für korrelierte Ablaufverfolgungen anzeigen und Problembehandlung.For more information, see Using Service Trace Viewer for Viewing Correlated Traces and Troubleshooting.

Durch das Erstellen von benutzerdefinierten Aktivitätsablaufverfolgungen kann die von ServiceModel bereitgestellte Ablaufverfolgung erweitert werden.It is possible to extend the tracing that is provided by the ServiceModel by creating user-defined activity traces. Durch die benutzerdefinierte Aktivitätsablaufverfolgung kann der Benutzer Ablaufverfolgungsaktivitäten für folgenden Aktionen erstellen:User-defined activity tracing allows the user to create trace activities to:

  • Gruppieren von Ablaufverfolgungen in logische Arbeitseinheiten.Group traces into logical units of work.

  • Korrelieren von Aktivitäten durch Übertragungen und Weitergabe.Correlate activities through transfers and propagation.

  • Die Leistungskosten der WCF-Ablaufverfolgung (z. B. der benötigte Speicherplatz für eine Protokolldatei).Lessen the performance cost of WCF tracing (for example, the disk space cost of a log file).

Weitere Informationen über eine benutzerdefinierte Aktivität Ablaufverfolgung finden Sie unter der erweitern Tracing Beispiel.For more information about user-defined activity trace, please see the Extending Tracing sample.

NachrichtenprotokollierungMessage Logging

Die nachrichtenprotokollierung kann sowohl auf dem Client und Dienst des WCF-Anwendung aktiviert werden.Message logging can be enabled both on the client and service of any WCF application. Zum Aktivieren der Nachrichtenprotokollierung müssen Sie dem Client oder dem Dienst den folgenden Code hinzufügen:To enable message logging, you must add the following code to either the client or service:

<configuration>  
  <system.serviceModel>  
    <diagnostics>  
      <!-- Enable Message Logging here. -->  
      <!-- log all messages received or sent at the transport or service model levels -->  
      <messageLogging logEntireMessage="true"  
                      maxMessagesToLog="300"  
                      logMessagesAtServiceLevel="true"  
                      logMalformedMessages="true"  
                      logMessagesAtTransportLevel="true" />  
    </diagnostics>  
  </system.serviceModel>  
</configuration>  

Wenn eine Nachricht aufgezeichnet wird, ist der Ablaufverfolgungstyp abhängig davon, ob die Ablaufverfolgung beim Client oder beim Server erfolgt.When a message is recorded, the trace type depends on whether it is being traced at the client or the server. Eine "Add"-Nachricht, die an einen Client gesendet wird, wird beispielsweise in der Kategorie "TransportWrite" beim Client verfolgt, während die gleiche Nachricht beim Dienst in der Kategorie "TransportRead" verfolgt wird.For example, an "Add" message that is sent to a client is traced under the "TransportWrite" category at the client, whereas the same message is traced under the "TransportRead" category at the service.

Konfigurieren Sie den Ablaufverfolgungslistener, indem Sie den folgenden Code im System.Diagnostics-Abschnitt der Datei "App.config" für den Client oder der Datei "Web.config" für den Dienst hinzufügen:Configure the trace listener by adding the following code to the System.Diagnostics section of the client's App.config file or the service's Web.config file:

<system.diagnostics>  
    <sources>  
      <source name="System.ServiceModel" switchValue="Information,ActivityTracing"  
        propagateActivity="true">  
        <listeners>  
          <add name="xml" />  
        </listeners>  
      </source>  
      <source name="System.ServiceModel.MessageLogging">  
        <listeners>  
          <add name="xml" />  
        </listeners>  
      </source>  
    </sources>  
    <sharedListeners>  
      <add initializeData="C:\logs\TracingAndLogging-client.svclog" type="System.Diagnostics.XmlWriterTraceListener"  
        name="xml" />  
    </sharedListeners>  
    <trace autoflush="true" />  
  </system.diagnostics>  

Nachrichten werden im XML-Format in dem in der Konfigurationsdatei angegebenen Zielverzeichnis protokolliert.Messages are logged in XML format in the target directory specified in the configuration file.

Hinweis

Ablaufverfolgungsdateien werden nur erstellt, wenn zuerst das Protokollverzeichnis erstellt wurde.Trace files are not created without initially creating the log directory. Stellen Sie sicher, dass das Verzeichnis C:\logs\ vorhanden ist, oder geben Sie ein anderes Protokollierungsverzeichnis in der Listenerkonfiguration an.Make sure that the directory C:\logs\ exists, or specify an alternate logging directory in the listener configuration. Weitere Informationen finden Sie in den Anweisungen zum ersten Einrichten am Ende dieses Dokuments.See the initial setup instructions at the end of this document for more information.

Weitere Informationen zur nachrichtenprotokollierung finden Sie unter der Konfigurieren der Nachrichtenprotokollierung Thema.For more information about message logging, see the Configuring Message Logging topic.

So können Sie das Beispiel einrichten, erstellen und ausführenTo set up, build, and run the sample

  1. Stellen Sie sicher, dass Sie ausgeführt haben die Setupprozedur für die Windows Communication Foundation-Beispiele zum einmaligen.Ensure that you have performed the One-Time Setup Procedure for the Windows Communication Foundation Samples.

  2. Bevor Sie das Beispiel zur Ablaufverfolgung und Nachrichtenprotokollierung ausführen, erstellen Sie das Verzeichnis C:\logs, in das der Dienst die SVCLOG-Dateien schreiben kann.Before running the Tracing and Message Logging sample, create the directory C:\logs\ for the service to write the .svclog files to. Der Name dieses Verzeichnisses wird in der Konfigurationsdatei als Pfad für die zu protokollierenden Ablaufverfolgungen und Nachrichten definiert und kann geändert werden.The name of this directory is defined in the configuration file as the path for the traces and messages to be logged and can be changed. Weisen Sie dem Benutzer Network Service Schreibzugriff für das Protokollverzeichnis zu.Give the user Network Service write access to the logs directory.

  3. Führen Sie zum Erstellen der C#-, C++ oder Visual Basic .NET Edition der Lösung die Anweisungen im Erstellen der Windows Communication Foundation-Beispiele.To build the C#, C++, or Visual Basic .NET edition of the solution, follow the instructions in Building the Windows Communication Foundation Samples.

  4. Um das Beispiel in einer Einzelcomputer- oder computerübergreifenden Konfiguration ausführen möchten, folgen Sie den Anweisungen Ausführen der Windows Communication Foundation-Beispiele.To run the sample in a single- or cross-computer configuration, follow the instructions in Running the Windows Communication Foundation Samples.

Wichtig

Die Beispiele sind möglicherweise bereits auf dem Computer installiert.The samples may already be installed on your computer. Suchen Sie nach dem folgenden Verzeichnis (Standardverzeichnis), bevor Sie fortfahren.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, fahren Sie mit Windows Communication Foundation (WCF) und Windows Workflow Foundation (WF) Samples for .NET Framework 4 aller Windows Communication Foundation (WCF) herunterladen und WFWF Beispiele.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WFWF samples. Dieses Beispiel befindet sich im folgenden Verzeichnis.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Management\TracingAndLogging

Siehe auchSee Also

AblaufverfolgungTracing
Überwachen der AppFabric-BeispieleAppFabric Monitoring Samples