在web.config
我有:
<system.diagnostics>
<switches>
<add name="logLevelSwitch" value="1" />
</switches>
</system.diagnostics>
有没有办法可以打电话,例如:
System.Diagnostics.TraceSwitch["logLevelSwitch"]
获取当前值?
答案 0 :(得分:5)
在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
标志到编译器命令行。