95 lines
2.6 KiB
C#
95 lines
2.6 KiB
C#
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;
|
|
}
|
|
}
|
|
} |