トレースとメッセージ ログTracing and Message Logging

このサンプルでは、トレースとメッセージ ログを有効にする方法を示します。This sample demonstrates how to enable tracing and message logging. 結果のトレースとメッセージ ログを使用して表示、サービス トレース ビューアー ツール (SvcTraceViewer.exe)します。The resulting traces and message logs are viewed using the Service Trace Viewer Tool (SvcTraceViewer.exe). このサンプルがに基づいて、 Getting Startedします。This sample is based on the Getting Started.

注意

このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。The setup procedure and build instructions for this sample are located at the end of this topic.

トレースTracing

Windows Communication Foundation (WCF) で定義されているトレース機構を使用して、System.Diagnostics名前空間。Windows Communication Foundation (WCF) uses the tracing mechanism defined in the System.Diagnostics namespace. このトレース モデルのトレース データは、アプリケーションが実装するトレース ソースによって作成されます。In this tracing model, trace data is produced by trace sources that applications implement. 各ソースは、名前によって識別されます。Each source is identified by a name. トレース コンシューマでは、情報を取得するトレース ソースのトレース リスナが作成されます。Trace consumers create trace listeners for the trace sources for which they want to retrieve information. トレース データを受け取るには、トレース ソースのリスナを作成する必要があります。To receive trace data, you must create a listener for the trace source. WCF では、これを行うサービス モデルのトレース ソースを設定して、サービスまたはクライアントの構成ファイルに次のコードを追加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>  

トレース ソースの詳細については、トレース ソース」セクションを参照してください、トレースの構成トピック。For more information about trace sources, see the Trace Source section in the Configuring Tracing topic.

アクティビティのトレースと伝達Activity Tracing and Propagation

あるActivityTracing有効になっているとpropagateActivityに設定trueで、system.ServiceModelクライアントとサービスの両方のトレース ソースは、エンドポイント (内のアクティビティ間 (アクティビティ) の処理の論理単位内でのトレースの相関関係を提供アクティビティ転送の場合) と (アクティビティ ID の伝達) を通じて複数のエンドポイントにわたるアクティビティ間。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).

3 つの機構 (アクティビティ、転送、および伝達) により、サービス トレース ビューア ツールを使用してエラーの根本原因をより迅速に見つけることができます。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. 詳細については、次を参照してください。相関トレースの表示とトラブルシューティングのサービス トレース ビューアーを使用してします。For more information, see Using Service Trace Viewer for Viewing Correlated Traces and Troubleshooting.

ユーザー定義のアクティビティ トレースを作成することにより、サービス モデルによって提供されるトレースを拡張することができます。It is possible to extend the tracing that is provided by the ServiceModel by creating user-defined activity traces. ユーザー定義のアクティビティ トレースによって、次の操作を可能にするトレース アクティビティを作成できます。User-defined activity tracing allows the user to create trace activities to:

  • 複数のトレースを作業の論理単位ごとにグループ化します。Group traces into logical units of work.

  • 転送や伝達を利用してアクティビティを相互に関連付けます。Correlate activities through transfers and propagation.

  • (たとえば、ログ ファイルのディスク領域のコスト) WCF トレースのパフォーマンス コストを軽減します。Lessen the performance cost of WCF tracing (for example, the disk space cost of a log file).

ユーザー定義のアクティビティ トレースの詳細についてを参照してください、トレース拡張サンプル。For more information about user-defined activity trace, please see the Extending Tracing sample.

メッセージ ログMessage Logging

クライアントと WCF アプリケーションのサービスの両方で、メッセージ ログを有効にすることができます。Message logging can be enabled both on the client and service of any WCF application. メッセージ ログを有効にするには、クライアントとサービスのどちらかに次のコードを追加する必要があります。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>  

メッセージが記録されるときのトレースの種類は、そのメッセージがクライアントでトレースされるか、またはサーバーでトレースされるかによって異なります。When a message is recorded, the trace type depends on whether it is being traced at the client or the server. たとえば、クライアントに送信される "Add" メッセージは、クライアントでは "TransportWrite" カテゴリの下でトレースされるのに対し、サービスでは同じメッセージが "TransportRead" カテゴリの下でトレースされます。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.

クライアントの App.config ファイルまたはサービスの Web.config ファイルの System.Diagnostics セクションに次のコードを追加して、トレース リスナを構成します。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>  

メッセージは、構成ファイルで指定された対象ディレクトリ内に XML 形式で記録されます。Messages are logged in XML format in the target directory specified in the configuration file.

注意

最初にログ ディレクトリが作成されていないと、トレース ファイルは作成されません。Trace files are not created without initially creating the log directory. ディレクトリ C:\logs\ が存在することを確認するか、またはリスナの構成でログ記録用の代替ディレクトリを指定します。Make sure that the directory C:\logs\ exists, or specify an alternate logging directory in the listener configuration. 詳細については、このドキュメントの最後にある初期セットアップ手順を参照してください。See the initial setup instructions at the end of this document for more information.

メッセージ ログの詳細については、次を参照してください。、メッセージ ログの構成トピック。For more information about message logging, see the Configuring Message Logging topic.

サンプルをセットアップ、ビルド、および実行するにはTo set up, build, and run the sample

  1. 実行したことを確認、 Windows Communication Foundation サンプルの 1 回限りのセットアップ手順します。Ensure that you have performed the One-Time Setup Procedure for the Windows Communication Foundation Samples.

  2. トレースとメッセージ ログのサンプルを実行する前に、サービスによって .svclog ファイルが書き込まれるディレクトリ C:\logs\ を作成します。Before running the Tracing and Message Logging sample, create the directory C:\logs\ for the service to write the .svclog files to. このディレクトリ名は、トレースとメッセージがログ記録されるパスとして、構成ファイル内で定義されます。この名前は変更可能です。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. ユーザー Network Service に、そのログ ディレクトリへの書き込みアクセスを与えます。Give the user Network Service write access to the logs directory.

  3. ソリューションの c#、C++、または Visual Basic .NET 版をビルドする手順については、 Windows Communication Foundation サンプルのビルドします。To build the C#, C++, or Visual Basic .NET edition of the solution, follow the instructions in Building the Windows Communication Foundation Samples.

  4. 1 つまたは複数コンピューター構成では、サンプルを実行する手順については、 Windows Communication Foundation サンプルの実行します。To run the sample in a single- or cross-computer configuration, follow the instructions in Running the Windows Communication Foundation Samples.

重要

サンプルは、既にコンピューターにインストールされている場合があります。The samples may already be installed on your computer. 続行する前に、次の (既定の) ディレクトリを確認してください。Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

このディレクトリが存在しない場合に移動Windows Communication Foundation (WCF) と .NET Framework 4 向けの Windows Workflow Foundation (WF) サンプルすべて Windows Communication Foundation (WCF) をダウンロードしてWFWFサンプル。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. このサンプルは、次のディレクトリに格納されます。This sample is located in the following directory.

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

関連項目See also