using NLog; using NLog.Config; using NLog.Targets; namespace GenDocCli { public static class NLogConfigurator { public static void Configure( string logFile, string logLevel) { var config = new LoggingConfiguration(); var fileTarget = new FileTarget("file") { FileName = logFile, Layout = "${longdate}|${level:uppercase=true}|${message}|${exception:format=tostring}" }; config.AddTarget(fileTarget); var consoleTarget = new ConsoleTarget("console") { Layout = "${longdate}|${level:uppercase=true}|${message}|${exception:format=tostring}" }; config.AddTarget(consoleTarget); LogLevel level; level = LogLevel.Info; if (logLevel.ToUpper() == "ALL") { for (int i = 0; i < 5; i++) { if(i== 0) { level = LogLevel.Trace; } if (i==1) { level = LogLevel.Debug; } else if (i == 2) { level = LogLevel.Info; } else if (i == 3) { level = LogLevel.Warn; } else if (i == 4) { level = LogLevel.Error; } config.LoggingRules.Add(new LoggingRule("*", level, fileTarget)); config.LoggingRules.Add(new LoggingRule("*", level, consoleTarget)); } LogManager.Configuration = config; return; } switch (logLevel.ToUpper()) { case "DEBUG": level = LogLevel.Debug; break; case "WARN": level = LogLevel.Warn; break; case "ERROR": level = LogLevel.Error; break; default: level = LogLevel.Info; break; } config.LoggingRules.Add( new LoggingRule( "*", level, fileTarget)); config.LoggingRules.Add( new LoggingRule("*", level, consoleTarget)); LogManager.Configuration = config; } } }