2012-10-28 59 views
7

在我web.config我:如何以编程方式获取当前跟踪开关?

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

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

System.Diagnostics.TraceSwitch["logLevelSwitch"]得到当前的价值?

+0

你有没有得到任何解决方案呢? –

回答

4

一旦你在你的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,请参阅编译器的文档。

要enabledebugging在C#中,/d:DEBUG标志添加到编译器命令行 当你编译代码,也可以添加到#define DEBUG您 文件的顶部。在Visual Basic中,将/d:DEBUG=True标志添加到编译器 命令行。

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

+1

不为我工作。总是说“关闭”。 –

+1

@bilalfazlani看我的编辑是否有帮助 –

+0

这很有帮助。谢谢! –

相关问题