循環トレース

CircularTracing サンプルは、循環バッファー トレース リスナーの実装を示しています。 運用サービスの一般的なシナリオは、長期間使用できるサービスを用意し、トレース ログを低レベルで有効にすることです。 これらのサービスは、多くのディスク領域を消費します。 サービスのトラブルシューティングを行う場合、トレース ログの最新のデータは問題の解決に関連します。 このサンプルでは、最新のトレースのみが構成可能な量のデータまでディスクに保持される循環バッファー トレース リスナーの実装を示します。 このサンプルは はじめに に基づいており、カスタム トレース リスナーが含まれています。

注

このサンプルのセットアップ手順とビルド手順は、このトピックの最後にあります。

このサンプルでは、 トレースとメッセージログ のサンプルに慣れ、 トレースとメッセージ ログのサンプルに関するドキュメントを読んでいるものとします。

循環バッファ トレース リスナ

循環バッファー トレース リスナーの実装の背後にある概念は、それぞれが必要なトレース ログ データの合計の半分まで格納できる 2 つのファイルを持つことです。 リスナーは 1 つのファイルを作成し、データ サイズの半分の制限に達するまでそのファイルに書き込みます。この時点で 2 番目のファイルに切り替えられます。 リスナーが 2 番目のファイルの制限に達すると、最初のファイルが新しいトレースで上書きされます。

このリスナーは XmlWriteTraceListener から派生し、 サービス トレース ビューアー ツール (SvcTraceViewer.exe) を使用してログを表示できるようにします。 ログを表示しようとすると、サービス トレース ビューアー ツールで両方のログ ファイルを同時に開くことで、2 つのログ ファイルを簡単に再結合できます。 サービス トレース ビューアー ツールは、トレースが正しい順序で表示されるように、トレースの並べ替えを自動的に処理します。

コンフィギュレーション

サービスは、リスナーとソース要素に次のコードを追加することで、循環バッファー トレース リスナーを使用するように構成できます。 最大ファイル サイズは、循環トレース リスナーの構成で maxFileSizeKB 属性を設定することによって指定されます。 これを次のコードで示します。

<system.diagnostics>
  <sources>
    <source name="System.ServiceModel" switchValue="Information,ActivityTracing" propagateActivity="true">
      <listeners>
        <add name="CircularTraceListener" />
      </listeners>
    </source>
  </sources>
  <sharedListeners>
    <add name="CircularTraceListener" type="Microsoft. Samples.ServiceModel.CircularTraceListener,CircularTraceListener"
         initializeData="c:\logs\CircularTracing-service.svclog" maxFileSizeKB="100" />
  </sharedListeners>
  <trace autoflush="true" />
</system.diagnostics>

サンプルを設定、ビルド、実行するには

  1. Windows Communication Foundation サンプルのOne-Time セットアップ手順を実行していることを確認します。

  2. ソリューションの C# または Visual Basic .NET エディションをビルドするには、「Windows Communication Foundation サンプルのビルド」の手順に従います。

  3. シングル コンピューター構成またはクロスコンピューター構成でサンプルを実行するには、「 Windows Communication Foundation サンプルの実行」の手順に従います。

こちらも参照ください