NLog启用从命令行进行日志记录

时间:2013-02-21 23:39:22

标签: .net logging nlog

您知道是否有办法以编程方式启用某些日志记录级别?

我希望在正常的应用程序使用期间只保留错误日志记录,但是在需要时可以通过将命令行参数传递给应用程序来打开更详细的信息。

1 个答案:

答案 0 :(得分:1)

给定一个像这样配置的基本记录器

<targets>
  <target xsi:type="File" name="payroll" fileName="c:\temp\payroll.log"             
        layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>
<rules>
    <logger name="*" minlevel="Error" writeTo="payroll" />
</rules>

您可以以编程方式添加到日志级别

    static void Main(string[] args)
    {
        if (args.Contains("Info"))
        {
            var logger = NLog.LogManager.Configuration.LoggingRules.First(x => x.Targets.First().Name == "payroll");
            logger.EnableLoggingForLevel(LogLevel.Info);    
        }

        var proc = new PayrollProcessor();
        proc.Process();
    }