如何以编程方式获取当前的跟踪开关?
在我的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
标志添加到编译器命令行。
上一篇: How can I get the current Trace Switch programatically?