如何在NLog中设置isdebugenabled

max*_*sam 5 asp.net nlog

我试图找到一种方法在配置文件中设置isdebugenabled false或true,

所以我可以随时打开或关闭它.谢谢 !

Joe*_*Joe 8

使用非常简单的日志记录设置

<targets>
  <target xsi:type="File"
          name="debug"
          fileName="c:\temp\debug.txt"
          layout="${longdate} ${uppercase:${level}} ${message}" 
  />
</targets>

<rules>
  <logger name="*" minlevel="Trace" writeTo="debug" />
</rules>
Run Code Online (Sandbox Code Playgroud)

还有一个同样简单的代码示例

class Program
{
    static void Main(string[] args)
    {
        var logger = new NLog.LogFactory().GetCurrentClassLogger();

        if (logger.IsDebugEnabled)
        {
            logger.Debug("this is a debug message");
        }

        logger.Debug("this is another debug message");
    }
}
Run Code Online (Sandbox Code Playgroud)

minLevel设置为Debug或Trace时,两个logger.Debug语句都将写入日志.如果提升minLevel到更高级别(Info,Warn,Off),则不会将任何语句写入日志. logger.Debug检查IsDebugEnabled(从日志级别推断).

通过检查IsDebugEnabled,您当然可以获得性能提升(在您将要记录计算值而不仅仅是字符串的情况下),并且更改minLevel记录器是切换此方法的方法.

  • 我认为NLog会有一个名为enabledebug ='false'的配置设置.他们应该在文件中表明这一点更为明显.谢谢你的帮助! (3认同)