コード例 #1
0
        public void FileLoggerShouldUse()
        {
            var factory = new LogFileNameFactory(_path, LogFileCycle.OneFile, "test", "log");

            var logFileName = Path.Combine(_path, "test.log");

            if (File.Exists(logFileName))
            {
                File.Delete(logFileName);
            }

            var logger = new FileLogger(factory, "test-logger");

            logger.LogInformation("information-message");
            using (logger.BeginScope("FunctionCall"))
            {
                logger.LogWarning("warning-message");
                logger.LogTrace("trace-message");
            }
            logger.LogError("error-message");

            var logContent = File.ReadAllText(logFileName);

            Assert.Contains("test-logger", logContent);
            Assert.Contains("information-message", logContent);
            Assert.Contains("error-message", logContent);
            Assert.Contains("warning-message", logContent);
            Assert.Contains("trace-message", logContent);
            Assert.Contains("=> FunctionCall", logContent);
        }
コード例 #2
0
        public void FilenameForCycleOneFileShouldBeNameOnly()
        {
            var factory = new LogFileNameFactory(_path, LogFileCycle.OneFile, "test", "log");

            var logFileName = factory.GetLogFileName();

            Assert.StartsWith(_path, logFileName);
            var fileName = Path.GetFileName(logFileName);

            Assert.Equal("test.log", fileName);
        }
コード例 #3
0
        public void FilenameForCycleYearlyShouldBeNameAndYear()
        {
            var factory      = new LogFileNameFactory(_path, LogFileCycle.Yearly, "test", "log");
            var now          = DateTime.Now;
            var expectedName = $"test_{now.Year:D4}.log";

            var logFileName = factory.GetLogFileName();

            Assert.StartsWith(_path, logFileName);
            var fileName = Path.GetFileName(logFileName);

            Assert.Equal(expectedName, fileName);
        }
コード例 #4
0
        public void FilenameForCycleWeeklyShouldBeNameAndWeek()
        {
            var factory      = new LogFileNameFactory(_path, LogFileCycle.Weekly, "test", "log");
            var now          = DateTime.Now;
            var expectedName = $"test_{Thread.CurrentThread.CurrentCulture.Calendar.GetWeekOfYear(now, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday):D2}.log";

            var logFileName = factory.GetLogFileName();

            Assert.StartsWith(_path, logFileName);
            var fileName = Path.GetFileName(logFileName);

            Assert.Equal(expectedName, fileName);
        }
コード例 #5
0
        public void FileLoggerShouldCreateFileIfNotExits()
        {
            var factory = new LogFileNameFactory(_path, LogFileCycle.OneFile, "test", "log");

            var logFileName = Path.Combine(_path, "test.log");

            if (File.Exists(logFileName))
            {
                File.Delete(logFileName);
            }

            var logger = new FileLogger(factory, "test-logger");

            logger.LogInformation("information-message");

            Assert.True(File.Exists(logFileName));
            var logContent = File.ReadAllText(logFileName);

            Assert.Contains("test-logger", logContent);
            Assert.Contains("information-message", logContent);
        }