TraceSwitch と SourceSwitch - 違いは何ですか?
-
02-10-2019 - |
質問
したがって、ここでは明らかなことを見逃しているかもしれませんが、実際には、 TraceSwitch
そして SourceSwitch
クラス?
どちらも同じ概要説明を提供します。
コードを再コンパイルせずにトレースとデバッグ出力を制御するためのマルチレベル スイッチを提供します。
備考欄が妙に私の目に似ている気がします。誰かが機能と使用例の違いを明確にしてもらえますか?
(完全を期すために、私はスイッチを使用しています TraceSource
古い静的ではなくオブジェクト Trace
クラスですが、それが大きな違いを生むとは思えません。)
解決
違いはそれです TraceSwitch
で動作します Trace
メッセージがあります SourceSwitch
で動作します TraceSource
メッセージをソースに関連付けるメッセージ。だから SourceSwitch
トレースメッセージがどこから来たのかに基づいて、リスナーを構成できます。
ドキュメントが違いを直接指摘していないことに同意しますが、関連するものを掘り下げてください TraceSource
クラスのドキュメントとあなたはこれを見つける:
TraceSource
クラスは、ソースの名前、通常はアプリケーションの名前によって識別されます。特定のコンポーネントからのトレースメッセージは、特定のトレースソースによって開始され、そのコンポーネントから来るすべてのメッセージを簡単に識別できるようにします。
また、構成する方法を示すサンプルもあります SourceSwitch
トレースソースからトレースをオフにする。
他のヒント
(古い) TraceSwitch は基本的に、静的 Trace クラスと組み合わせて使用される TraceLevel オブジェクトです。
(新しい) TraceSource は、TraceLevel の概念と実際の出力メソッドを組み合わせたものです。
その結果、大規模なアプリでは、複数の TraceSwitches を使用してプログラムのさまざまな部分 (GUI、DAL) の Trace 設定を構成できますが、すべての出力は同じ TraceListener に送信されます。
TraceSource を使用すると、独立した出力チャネルを持つことができます。そして少し優れた API です。
TracelevelとSaurcelevelの違いのこの説明は、次のように役立つかもしれません。