internal RollingLogFile Next(TemplatedPathRoller roller, LogEventLevel?level = null)
        {
            Level = level;
            var fileName = roller.GetLogFilePath(DateTime.UtcNow, level, SequenceNumber + 1);

            return(new RollingLogFile(fileName, DateTime.UtcNow, SequenceNumber + 1,
                                      level.HasValue ? level.ToString() : null));
        }
Пример #2
0
 public RollingFileAlternativeSink(ITextFormatter formatter, TemplatedPathRoller roller, long fileSizeLimitBytes,
                                   RollingLogFile rollingLogFile, Encoding encoding = null)
 {
     _formatter          = formatter;
     _roller             = roller;
     _fileSizeLimitBytes = fileSizeLimitBytes;
     EnableLevelLogging  = roller.PathIncludesLevel;
     _output             = OpenFileForWriting(roller.LogFileDirectory, rollingLogFile, encoding ?? Encoding.UTF8);
 }
        public SizeRollingFileSink(string pathFormat, ITextFormatter formatter, long fileSizeLimitBytes,
                                   TimeSpan?retainedFileDurationLimit, Encoding encoding = null)
        {
            _roller                    = new TemplatedPathRoller(pathFormat);
            _formatter                 = formatter;
            _fileSizeLimitBytes        = fileSizeLimitBytes;
            _encoding                  = encoding;
            _retainedFileDurationLimit = retainedFileDurationLimit;
            _currentSink               = GetLatestSink();

            if (AsyncOptions.SupportAsync)
            {
                _queue = new BlockingCollection <LogEvent>(AsyncOptions.BufferSize);
                Task.Run((Action)ProcessQueue, _cancelToken.Token);
            }
        }