private void ReloadLoggerOptions(FileLoggerOptions options, bool startup) { if (string.IsNullOrEmpty(options.Path)) { throw new ArgumentException($"Invalid value", nameof(options.Path)); } if (options.Behaviour == FileLoggerBehaviour.Backup) { if ((options.BackupMode & FileLoggerBackupMode.Size) == FileLoggerBackupMode.Size && !TryParseSize(options.MaxSize, out _maxSize)) { throw new ArgumentException($"Invalid value", nameof(options.MaxSize)); } if ((options.BackupMode & FileLoggerBackupMode.Age) == FileLoggerBackupMode.Age && options.MaxAge <= TimeSpan.Zero) { throw new ArgumentException($"Invalid value", nameof(options.MaxAge)); } } _includeScopes = options.IncludeScopes; _path = ResolvePath(options.Path); _prefix = options.Pattern; _behaviour = options.Behaviour; _backupMode = options.BackupMode; _maxAge = options.MaxAge; var scopeProvider = GetScopeProvider(); var fileLogger = GetFileProcessor(reset: true, startup: startup); foreach (var logger in _loggers.Values) { logger.ScopeProvider = scopeProvider; logger.FileProcessor = fileLogger; logger.Pattern = _prefix; } }
public FileLoggerBackupProcessor(string path, FileLoggerBackupMode mode, long maxSize, TimeSpan maxAge, bool startup) : base(path, false) { var testSize = (mode & FileLoggerBackupMode.Size) == FileLoggerBackupMode.Size; var testAge = (mode & FileLoggerBackupMode.Age) == FileLoggerBackupMode.Age; _backupFile = BackupFileFactory(testSize ? maxSize : long.MaxValue, testAge ? maxAge : Timeout.InfiniteTimeSpan); if (startup && (mode & FileLoggerBackupMode.Startup) == FileLoggerBackupMode.Startup) { GenerateBackupFile(); } }