private static async Task MakeOneArchiveFile(int maxFileSizeKilobytes, RollingFileLogProvider rollingFileLogProvider) { var logEntry = GetLogEntry(); // Write to the log file until it has exceeded the max file size. while (IsTooSmallForRollOver(maxFileSizeKilobytes)) { await rollingFileLogProvider.WriteAsync(logEntry); } // This log entry should cause the existing log file to be archived, and a new one created. await rollingFileLogProvider.WriteAsync(logEntry); }
public async void PrunesOldArchiveFiles() { const int maxFileSizeKilobytes = 50; var logProvider = new RollingFileLogProvider( _logFilePath, maxFileSizeKilobytes, 2, logFormatter: new SerializingLogFormatter(new XmlSerializerSerializer())); Assert.That(GetFileCount(), Is.EqualTo(0)); await logProvider.WriteAsync(GetLogEntry()); Assert.That(GetFileCount(), Is.EqualTo(1)); await MakeOneArchiveFile(maxFileSizeKilobytes, logProvider); Assert.That(GetFileCount(), Is.EqualTo(2)); await MakeOneArchiveFile(maxFileSizeKilobytes, logProvider); Assert.That(GetFileCount(), Is.EqualTo(3)); await MakeOneArchiveFile(maxFileSizeKilobytes, logProvider); Assert.That(GetFileCount(), Is.EqualTo(3)); await MakeOneArchiveFile(maxFileSizeKilobytes, logProvider); Assert.That(GetFileCount(), Is.EqualTo(3)); }
public async Task WriteAsyncPrunesOldArchiveFiles() { const int maxFileSizeKilobytes = 50; var rollingFileLogProvider = new RollingFileLogProvider( _logFilePath, new JsonLogFormatter(), maxFileSizeKilobytes: maxFileSizeKilobytes, maxArchiveCount: 2); GetFileCount().Should().Be(0); await rollingFileLogProvider.WriteAsync(GetLogEntry()); GetFileCount().Should().Be(1); await MakeOneArchiveFile(maxFileSizeKilobytes, rollingFileLogProvider); GetFileCount().Should().Be(2); await MakeOneArchiveFile(maxFileSizeKilobytes, rollingFileLogProvider); GetFileCount().Should().Be(3); await MakeOneArchiveFile(maxFileSizeKilobytes, rollingFileLogProvider); GetFileCount().Should().Be(3); await MakeOneArchiveFile(maxFileSizeKilobytes, rollingFileLogProvider); GetFileCount().Should().Be(3); }
public async Task WriteLineAsyncFormatsTheLogEntryAndWritesItToDisk() { var rollingFileLogProvider = new RollingFileLogProvider(_logFilePath, "{level}:{message}"); var logEntry = new LogEntry("Hello, world!", LogLevel.Info); await rollingFileLogProvider.WriteAsync(logEntry); var output = await File.ReadAllTextAsync(_logFilePath); output.Should().Be($"Info:Hello, world!{Environment.NewLine}"); }
public async void CausesTheLogFileToBeArchivedWhenItsSizeGetsTooBig() { const int maxFileSizeKilobytes = 50; var logProvider = new RollingFileLogProvider( _logFilePath, maxFileSizeKilobytes, logFormatter: new SerializingLogFormatter(new XmlSerializerSerializer())); Assert.That(GetFileCount(), Is.EqualTo(0)); await logProvider.WriteAsync(GetLogEntry()); Assert.That(GetFileCount(), Is.EqualTo(1)); await MakeOneArchiveFile(maxFileSizeKilobytes, logProvider); Assert.That(GetFileCount(), Is.EqualTo(2)); }
public async Task WriteAsyncCausesTheLogFileToBeArchivedWhenItsSizeGetsTooBig() { const int maxFileSizeKilobytes = 50; var rollingFileLogProvider = new RollingFileLogProvider( _logFilePath, new JsonLogFormatter(), maxFileSizeKilobytes: maxFileSizeKilobytes); GetFileCount().Should().Be(0); await rollingFileLogProvider.WriteAsync(GetLogEntry()); GetFileCount().Should().Be(1); await MakeOneArchiveFile(maxFileSizeKilobytes, rollingFileLogProvider); GetFileCount().Should().Be(2); }
private static async Task MakeOneArchiveFile(int maxFileSizeKilobytes, RollingFileLogProvider logProvider) { var logEntry = GetLogEntry(); // Write to the log file until it has exceeded the max file size. while (IsTooSmallForRollOver(maxFileSizeKilobytes)) { await logProvider.WriteAsync(logEntry); } // This log entry should cause the existing log file to be archived, and a new one created. await logProvider.WriteAsync(logEntry); }