7

私のweb.config中には:

<system.diagnostics>
  <switches>
    <add name="logLevelSwitch" value="1" />
  </switches>
</system.diagnostics>

たとえば、私が呼び出すことができる方法はありますか?

System.Diagnostics.TraceSwitch["logLevelSwitch"]現在の値を取得するには?

4

1 に答える 1

6

ファイルでスイッチ値を定義したら、同じ名前の をweb.config作成することで、アプリケーションからこの値を簡単に取得できます。TraceSwitch

private static TraceSwitch logSwitch = new TraceSwitch("logLevelSwitch",
    "This is your logLevelSwitch in the config file");

public static void Main(string[] args)
{
    // you can get its properties value then:
    Console.WriteLine("Trace switch {0} is configured as {1}",
        logSwitch.DisplayName,
        logSwitch.Level.ToString());

    // and you can use it like this:
    if (logSwitch.TraceError)
        Trace.WriteLine("This is an error");

    // or like this also:
    Trace.WriteLineIf(logSwitch.TraceWarning, "This is a warning");
}

さらに、ドキュメントによると、これが機能するために:

スイッチを使用するには、トレースまたはデバッグを有効にする必要があります。次の構文はコンパイラ固有です。C# または Visual Basic 以外のコンパイラを使用する場合は、コンパイラのドキュメントを参照してください。

C# でデバッグを有効にするには/d:DEBUG、コードをコンパイルするときにフラグをコンパイラ コマンド ラインに追加するか#define DEBUG、ファイルの先頭に追加します。Visual Basic では、/d:DEBUG=Trueフラグをコンパイラ コマンド ラインに追加します。

C# で使用してトレースを有効にするには/d:TRACE、コードをコンパイルするときにフラグをコンパイラ コマンド ラインに追加#define TRACEするか、ファイルの先頭に追加します。Visual Basic では、/d:TRACE=True フラグをコンパイラ コマンド ラインに追加します。

于 2012-10-29T10:25:33.463 に答える