我的应用程序在程序开始时有太多的log.Trace()
,导致程序出现故障,因此我无法使用通用的NLog
配置来增加日志级别。
因此,我想在运行时增加日志级别。为此,我在互联网上找到了类似于以下内容的东西:
foreach (var rule in LogManager.Configuration.LoggingRules)
{
// Iterate over all levels up to and including the target, (re)enabling them.
for (int i = 0; i <= 5; i++)
{
rule.EnableLoggingForLevel(LogLevel.FromOrdinal(i));
}
}
然而,这似乎并没有起作用,因为以下行未显示在日志中,尽管我确定已经传递了此行:
log.Trace("log trace works!");
有人知道如何确保在我的源代码的某个时刻,我可以看到log.Trace()
的结果吗?
供您参考:
log
被定义为private static readonly Logger log = LogManager.GetCurrentClassLogger();
。- 我一直在寻找一个包含
<nlog>
标记的nlog.*
文件,但我没有找到任何东西。
编辑:
我正在使用NLog
版本4.5.4。
编辑2(尝试强制读取配置):
我已修改nlog.config
文件如下:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true">
<variable name="myLevel" value="Trace" />
<rules>
<logger minLevel="${var:myLevel}" />
</rules>
...
然后我尝试强制重新读取该配置,方法如下:
NLog.LogManager.Setup().LoadConfigurationFromFile("C:\\...\\NLog.config");
提前致谢