9

だから私はおそらくここで明白なことを見逃していますが、実際にはTraceSwitchSourceSwitchクラスの機能の違いは何ですか?

それらは両方とも同一の要約説明を提供します:

コードを再コンパイルせずにトレースとデバッグ出力を制御するためのマルチレベルスイッチを提供します。

備考欄は妙に私の目に似ていますか?誰かが彼らの機能と使用例の違いを明確にしてくれませんか?

TraceSource(完全を期すために、古い静的クラスではなく、オブジェクトでスイッチを使用していますが、Trace大きな違いはないと思います。)

4

3 に答える 3

10

違いは、メッセージでTraceSwitch機能するのTraceに対し、メッセージをソースに関連付けるメッセージで機能することです。したがって、を使用すると、トレースメッセージの送信元に基づいてリスナーを構成できます。SourceSwitchTraceSourceSourceSwitch

ドキュメントが違いを直接指摘していないことに同意しますが、関連するTraceSourceクラスのドキュメントを調べてみると、次のことがわかります。

クラスは、ソースのTraceSource名前、通常はアプリケーションの名前で識別されます。特定のコンポーネントからのトレースメッセージは、特定のトレースソースから開始できるため、そのコンポーネントからのすべてのメッセージを簡単に識別できます。

SourceSwitchトレースソースからのトレースをオフにするように構成する方法を示すサンプルもあります。

于 2010-09-11T17:01:36.160 に答える
7

(古い)TraceSwitchは基本的に、静的Traceクラスと組み合わせて使用​​されるTraceLevelオブジェクトです。

(新しい)TraceSourceは、TraceLevelの概念と実際の出力メソッドを組み合わせたものです。

結果として、大規模なアプリでは、複数のTraceSwitchを使用して、プログラムのさまざまな部分(GUI、DAL)のトレース設定を構成できますが、すべての出力は同じTraceListenerに送信されます。

TraceSourceを使用すると、独立した出力チャネルを持つことができます。そして、わずかに優れたAPI。

于 2010-09-11T17:06:15.283 に答える
0

TraceLevelとSourceLevelの違いに関するこの説明は、次の場合に役立ちます。

System.Diagnosticsの非表示のSourceLevels

于 2010-10-25T18:51:02.503 に答える