예제 #1
0
 public override void Process()
 {
     if (WSU.TriggerTimeElapsed(MainService.LastTruncateArchivesTime, Config.TRUNCATE_ARCHIVES_TIMES) > 0)
     {
         DateTime now      = DateTime.UtcNow;
         DateTime boundary = now.AddDays(-1 * Config.ARCHIVE_DAYS);
         Logger.DebugFormat("Clean Up Log Files Older than {0} Days", Config.ARCHIVE_DAYS);
         //TODO
         //if (_IntegrationDBAccessor.Delete(boundary))
         //{
         string[] logFiles = Directory.GetFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Config.LOG_FILE_PATH), "*.txt", SearchOption.TopDirectoryOnly);
         foreach (string logFile in logFiles)
         {
             FileInfo fileInfo = new FileInfo(logFile);
             if (fileInfo.CreationTimeUtc < boundary)
             {
                 fileInfo.Delete();
             }
         }
         Logger.Debug("Log Files Cleaned Up Successfully");
         MainService.LastTruncateArchivesTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(now, WSU.ServerTimeZone);
         //}
     }
 }
 public MainService()
 {
     InitializeComponent();
     _WSU = new WSU(Config.LOG_FILE_PATH, Config.RUN_INTERVAL, Config.MAXIMUM_THREADS, Config.SLEEP_DURATION);
     _WSU.Timer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimerElapsed);
 }