diff --git a/Logging/FileLogger.cs b/Logging/FileLogger.cs index 20829d3..7c844b2 100644 --- a/Logging/FileLogger.cs +++ b/Logging/FileLogger.cs @@ -6,10 +6,16 @@ namespace Logging; public class FileLogger : LoggerBase { private string logFilePath { get; } + private const int MaxNumberOfLogFiles = 5; public FileLogger(string logFilePath, TextWriter? stdOut, Encoding? encoding = null) : base (stdOut, encoding) { this.logFilePath = logFilePath; + + //Remove oldest logfile if more than MaxNumberOfLogFiles + string parentFolderPath = Path.GetDirectoryName(logFilePath)!; + for (int fileCount = new DirectoryInfo(parentFolderPath).EnumerateFiles().Count(); fileCount > MaxNumberOfLogFiles - 1; fileCount--) //-1 because we create own logfile later + File.Delete(new DirectoryInfo(parentFolderPath).EnumerateFiles().MinBy(file => file.LastWriteTime)!.FullName); } protected override void Write(LogMessage logMessage)