コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: SimpleLoggerTest.cs プロジェクト: aspenlaub/Pegh
    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));
    }
コード例 #3
0
ファイル: SimpleLoggerTest.cs プロジェクト: aspenlaub/Pegh
 public void Initialize()
 {
     _Flusher = new SimpleLogFlusher();
 }