Files
OnDoc/Tool_API_DokumentGenerator_RunCLI/NLogConfigurator.cs
T
2026-07-17 14:43:33 +02:00

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;
}
}
}