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);
     }
 }
Example #3
0
        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);
        }