public RetentionWorker(DirectoryRetentionConfig config) { if (config == null) { throw new ArgumentNullException(); } if (!(Directory.Exists(config.Directory))) { throw new ArgumentException(); } _config = config; }
private IEnumerable <DirectoryRetentionConfig> GetDirConfigs(DirectoryRetentionConfig original) { if (original.Directory.Equals(SpecialDirectoryLog4Net)) { foreach (var logDir in LogManager.GetAllRepositories() .SelectMany(r => r.GetAppenders()) .OfType <RollingFileAppender>() .Select(a => Path.GetDirectoryName(a.File))) { var newConfig = original.Copy(); newConfig.Directory = logDir; yield return(newConfig); } } else { yield return(original); } }
public RetentionWatcher(DirectoryRetentionConfig config) { if (config == null) { throw new ArgumentNullException(); } if (!(Directory.Exists(config.Directory))) { throw new ArgumentException(); } _watcher = new FileSystemWatcher(config.Directory); _watcher.Changed += OnChanged; _watcher.Created += OnChanged; _watcher.EnableRaisingEvents = true; _worker = new RetentionWorker(config); }