public void Flush_WithRandomScope_ProducesFileWithoutRandomComponent() { var sut = new SimpleLogFlusher(); var loggerMock = new Mock <ISimpleLogger>(); var logEntries = new List <ISimpleLogEntry> { new SimpleLogEntry { LogLevel = LogLevel.Information, Message = nameof(SimpleLogFlusherTest), Stack = new List <string> { nameof(SimpleLogFlusherTest) + "(AE34C4AB53B9)BE40" } } }; loggerMock.Setup(l => l.FindLogEntries(It.IsAny <Func <ISimpleLogEntry, bool> >())).Returns(logEntries); const string subFolder = @"AspenlaubLogs\" + nameof(SimpleLogFlusherTest); var folder = new Folder(Path.GetTempPath()).SubFolder(subFolder); folder.CreateIfNecessary(); foreach (var fileName in Directory.GetFiles(folder.FullName, "*.log")) { File.Delete(fileName); } sut.Flush(loggerMock.Object, subFolder); var fileNames = Directory.GetFiles(folder.FullName, "*.log").ToList(); Assert.AreEqual(1, fileNames.Count); Assert.AreEqual(folder.FullName + '\\' + nameof(SimpleLogFlusherTest) + '(' + Environment.ProcessId + ").log", fileNames[0]); Assert.IsTrue(File.ReadAllText(fileNames[0]).Contains(logEntries[0].Message)); }
public void Log_CalledManyTimes_IsWorking() { _Sut = new SimpleLogger(CreateLogConfiguration(nameof(Log_CalledManyTimes_IsWorking)), _Flusher, _MethodNamesFromStackFramesExtractor); using (_Sut.BeginScope(new SimpleLoggingScopeId { ClassOrMethod = "Scope", Id = "A" })) { using (_Sut.BeginScope(new SimpleLoggingScopeId { ClassOrMethod = "Scope", Id = "B" })) { for (var i = 0; i < NumberOfLogEntries; i++) { _Sut.LogInformationWithCallStack(NotAMessage, _MethodNamesFromStackFramesExtractor.ExtractMethodNamesFromStackFrames()); } } } var logEntries = _Sut.FindLogEntries(_ => true); Assert.AreEqual(NumberOfLogEntries, logEntries.Count); Assert.AreEqual(LogLevel.Information, logEntries[0].LogLevel); Assert.AreEqual(2, logEntries[0].Stack.Count); Assert.AreEqual("Scope(A)", logEntries[0].Stack[0]); Assert.AreEqual("Scope(B)", logEntries[0].Stack[1]); Assert.AreEqual(NotAMessage, logEntries[0].Message); var fileNames = _Flusher.FileNames; Assert.AreEqual(1, fileNames.Count); var fileName = fileNames.First(); Assert.IsTrue(File.Exists(fileName)); Assert.IsTrue(fileName.EndsWith(@"\Scope(A).log")); Assert.AreEqual(0, logEntries.Count(e => !e.Flushed)); File.SetLastWriteTime(fileName, DateTime.Now.AddHours(-25)); SimpleLogFlusher.ResetCleanupTime(); _Flusher.Flush(_Sut, _Sut.LogSubFolder); Assert.IsFalse(File.Exists(fileName)); }