38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
using System.Text;
|
|
using NLog;
|
|
using NLog.Targets;
|
|
|
|
namespace TURN.Services.Chess
|
|
{
|
|
public static class LoggerFactory
|
|
{
|
|
public static Logger GetLogger()
|
|
{
|
|
return LogManager.Setup().LoadConfiguration(c =>
|
|
{
|
|
ColoredConsoleTarget consoleTarget = new()
|
|
{
|
|
Layout = "${date}|${level:uppercase=true}|${message:withexception=true}"
|
|
};
|
|
FileTarget fileTarget = new()
|
|
{
|
|
FileName = Environment.GetEnvironmentVariable("LOG_FILE_PATH"),
|
|
Layout = "${date}|${level:uppercase=true}|${message:withexception=true}",
|
|
Encoding = Encoding.UTF8,
|
|
LineEnding = LineEndingMode.CRLF,
|
|
KeepFileOpen = true,
|
|
ConcurrentWrites = true,
|
|
ArchiveAboveSize = long.Parse(Environment.GetEnvironmentVariable("LOG_FILE_SIZE")),
|
|
MaxArchiveFiles = 10,
|
|
MaxArchiveDays = 365
|
|
};
|
|
|
|
_ = c.ForLogger("consoleAndFile")
|
|
.FilterMinLevel(NLog.LogLevel.Debug)
|
|
.WriteTo(consoleTarget)
|
|
.WriteTo(fileTarget);
|
|
}).GetLogger("consoleAndFile");
|
|
}
|
|
}
|
|
}
|