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>
サンプルを設定、ビルド、実行するには
Windows Communication Foundation サンプルのOne-Time セットアップ手順を実行していることを確認します。
ソリューションの C# または Visual Basic .NET エディションをビルドするには、「Windows Communication Foundation サンプルのビルド」の手順に従います。
シングル コンピューター構成またはクロスコンピューター構成でサンプルを実行するには、「 Windows Communication Foundation サンプルの実行」の手順に従います。