示例#1
0
 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));
            }
        }
示例#3
0
        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);
        }
示例#4
0
 private static ColoredConsoleTarget CreateConsoleTarget(LogTarget logTarget)
 => new ColoredConsoleTarget(name: logTarget.Type.ToString())
 {
     Layout = logTarget.GetLayout()
 };