次の方法で共有


循環トレース

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 サンプルの実行」の手順に従います。

こちらも参照ください