private static FileTarget CreateFileTarget(LoggingOptions loggingOptions, LogTarget logTarget) => new FileTarget(name: logTarget.Type.ToString()) { FileName = Path.Combine(loggingOptions.RootLogDirectory, loggingOptions.ApplicationName, $"{loggingOptions.ApplicationName}.log"), ArchiveFileName = Path.Combine(loggingOptions.RootLogDirectory, loggingOptions.ApplicationName, "archive", $"{loggingOptions.ApplicationName}.zip"), ArchiveEvery = FileArchivePeriod.Day, ArchiveNumbering = ArchiveNumberingMode.DateAndSequence, ArchiveDateFormat = "yyyy-MM-dd", MaxArchiveFiles = 30, ArchiveAboveSize = 5242880, //5MB EnableArchiveFileCompression = true, Layout = logTarget.GetLayout() };
public static Layout GetLayout(this LogTarget logTarget) { switch (logTarget.Format) { case LogFormat.Gelf: return(_gelfLayout.Value); case LogFormat.Plain: return(_plainLayout.Value); default: throw new ArgumentOutOfRangeException(nameof(logTarget.Format)); } }
private static Target CreateNlogTarget(LoggingOptions loggingOptions, LogTarget logTarget) { Target nlogTarget; switch (logTarget.Type) { case LogTargetType.File: nlogTarget = CreateFileTarget(loggingOptions, logTarget); break; case LogTargetType.Console: nlogTarget = CreateConsoleTarget(logTarget); break; default: throw new ArgumentOutOfRangeException(nameof(logTarget.Type)); } if (logTarget.Async) { nlogTarget = new AsyncTargetWrapper($"async_{nlogTarget.Name}", nlogTarget); } return(nlogTarget); }
private static ColoredConsoleTarget CreateConsoleTarget(LogTarget logTarget) => new ColoredConsoleTarget(name: logTarget.Type.ToString()) { Layout = logTarget.GetLayout() };