mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
Delete old log files on startup
This commit is contained in:
parent
78ba02f277
commit
70de8fae09
@ -60,13 +60,45 @@ namespace Wabbajack.Common
|
||||
LogFile = Path.Combine(Consts.LogsFolder, Path.GetFileNameWithoutExtension(programName) + ".current.log");
|
||||
_startTime = DateTime.Now;
|
||||
|
||||
|
||||
if (LogFile.FileExists())
|
||||
{
|
||||
var newPath = Path.Combine(Consts.LogsFolder, Path.GetFileNameWithoutExtension(programName) + (new FileInfo(LogFile)).LastWriteTime.ToString(" yyyy-MM-dd HH_mm_ss") + ".log");
|
||||
var newPath = Path.Combine(Consts.LogsFolder, Path.GetFileNameWithoutExtension(programName) + new FileInfo(LogFile).LastWriteTime.ToString(" yyyy-MM-dd HH_mm_ss") + ".log");
|
||||
File.Move(LogFile, newPath, MoveOptions.ReplaceExisting);
|
||||
}
|
||||
|
||||
var logFiles = Directory.GetFiles(Consts.LogsFolder);
|
||||
if (logFiles.Length >= Consts.MaxOldLogs)
|
||||
{
|
||||
Log($"Maximum amount of old logs reached ({logFiles.Length} >= {Consts.MaxOldLogs})");
|
||||
var filesToDelete = logFiles
|
||||
.Where(File.Exists)
|
||||
.OrderBy(f =>
|
||||
{
|
||||
var fi = new FileInfo(f);
|
||||
return fi.LastWriteTime;
|
||||
}).Take(logFiles.Length - Consts.MaxOldLogs).ToList();
|
||||
|
||||
Log($"Found {filesToDelete.Count} old log files to delete");
|
||||
|
||||
var success = 0;
|
||||
var failed = 0;
|
||||
filesToDelete.Do(f =>
|
||||
{
|
||||
try
|
||||
{
|
||||
File.Delete(f);
|
||||
success++;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
failed++;
|
||||
Log($"Could not delete log at {f}!\n{e}");
|
||||
}
|
||||
});
|
||||
|
||||
Log($"Deleted {success} log files, failed to delete {failed} logs");
|
||||
}
|
||||
|
||||
var watcher = new FileSystemWatcher(Consts.LocalAppDataPath);
|
||||
AppLocalEvents = Observable.Merge(Observable.FromEventPattern<FileSystemEventHandler, FileSystemEventArgs>(h => watcher.Changed += h, h => watcher.Changed -= h).Select(e => (FileEventType.Changed, e.EventArgs)),
|
||||
Observable.FromEventPattern<FileSystemEventHandler, FileSystemEventArgs>(h => watcher.Created += h, h => watcher.Created -= h).Select(e => (FileEventType.Created, e.EventArgs)),
|
||||
|
Loading…
Reference in New Issue
Block a user