如何以编程方式获取当前的跟踪开关?

在我的web.config有:

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

有没有我可以打电话的方式,例如:

System.Diagnostics.TraceSwitch["logLevelSwitch"]获取当前值?


一旦在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 ,请在编译代码时将/d:DEBUG标志添加到编译器命令行,或者可以将#define DEBUG添加到文件顶部。 在Visual Basic中,将/d:DEBUG=True标志添加到编译器命令行。

要在C#中启用跟踪,请在编译代码时将/d:TRACE标志添加到编译器命令行,或将#define TRACE添加到文件顶部。 在Visual Basic中,将/d:TRACE=True标志添加到编译器命令行。

链接地址: http://www.djcxy.com/p/65221.html

上一篇: How can I get the current Trace Switch programatically?

下一篇: Variable inaccessible due to protection level