app.config で、詳細、警告、なしの 3 つのトレース レベル (スイッチ?) を設定したいと考えています。コードのデバッグ バージョンでは、verbose スイッチをアクティブにしたいのですが、リリースでは警告が必要です。特殊なケースでは、アプリケーション ユーザーは構成ファイルを変更してすべてのトレースを無効にすることができます。
デバッグ トレースはコンソールに出力し、リリース トレースはログ ファイルにのみ出力したい。
私は、次のように書いています。
[...]
<system.diagnostics>
<sources>
<!-- This section defines the logging configuration for My.Application.Log -->
<source name="debug" switchName="debug">
<listeners>
<add name="FileLog"/>
<add name="console"/>
</listeners>
</source>
<source name="release" switchName="release">
<listeners>
<add name="FileLog"/>
</listeners>
</source>
<source name="silent" switchName="none">
<listeners/>
</source>
</sources>
<switches>
<add name="debug" value="Verbose"/>
<add name="release" value="Warning"/>
<add name="none" value="Off"/>
</switches>
<!--<sharedListeners>
<add name="FileLog" type="System.Diagnostics.TextWriterTraceListener" traceOutputOptions="DateTime" initializeData="felix.log"/>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false" />
</sharedListeners>-->
<trace autoflush="false" indentsize="4">
<listeners>
<add name="FileLog" type="System.Diagnostics.TextWriterTraceListener" traceOutputOptions="DateTime" initializeData="felix.log"/>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false"/>
<remove name="Default"/>
</listeners>
</trace>
</system.diagnostics>
[...]
次に、コードで次のように trace を呼び出します。
Public Shared Sub HandleException(ByVal ex As Exception)
Trace.WriteLine(ex.Message, "Error")
[...]
私が思うに欠けているものがあります。Trace メソッドに使用する適切なスイッチを指定するにはどうすればよいですか?? アプリケーション ユーザーが構成ファイルを変更してトレースを許可または無効にするにはどうすればよいですか?
ありがとう。