Пример #1
0
        public void SerilogLoggerSettings_TestLogFolderPath()
        {
            var loggerSettings = new SerilogLoggerSettings(_fileSystem, LogEventLevel.Debug, LoggingOutputFlags.Default);

            loggerSettings.TestLogFolderPath.Should().NotBeNullOrEmpty();
            _fileSystem.FolderExists(loggerSettings.TestLogFolderPath).Should().BeTrue();
        }
Пример #2
0
        /// <summary>
        /// Uses the system settings.
        /// </summary>
        /// <param name="webHostBuilder">The web host builder.</param>
        /// <param name="logFileName">Name of the log file.</param>
        /// <param name="includeLogEvent">The include log event.</param>
        /// <returns>IWebHostBuilder.</returns>
        /// <autogeneratedoc />
        public static IWebHostBuilder UseSystemSettings(this IWebHostBuilder webHostBuilder, string logFileName,
                                                        Func <LogEvent, bool> includeLogEvent)
        {
            var operatingSystem  = new OperatingSystem();
            var appConfiguration = GetAppConfiguration();
            var fileSystem       = new FileSystem(appConfiguration, operatingSystem);

            var loggerSettings      = new SerilogLoggerSettings(fileSystem, appConfiguration, LoggingOutputFlags.AppFull);
            var loggerConfiguration =
                LoggerConfigurationFactory.CreateLoggerConfiguration(appConfiguration, logFileName, loggerSettings,
                                                                     includeLogEvent);
            var loggerFactory =
                LoggerConfigurationFactory.CreatePureSeriLoggerFactory(loggerSettings, loggerConfiguration);

            webHostBuilder.ConfigureServices(services =>
                                             services.AddSingleton(loggerFactory));

            webHostBuilder.ConfigureServices(services =>
                                             services.AddSingleton <ILoggerFactory>(loggerFactory));

            webHostBuilder.ConfigureServices(services =>
                                             services.AddSingleton <IOperatingSystem>(operatingSystem));

            webHostBuilder.ConfigureServices(services =>
                                             services.AddSingleton <IFileSystem>(fileSystem));

            return(webHostBuilder);
        }
Пример #3
0
        /// <summary>
        /// Creates the pure logger factory.
        /// </summary>
        /// <param name="logEventLevel">The log event level.</param>
        /// <param name="loggingOutputFlags">The logging output flags.</param>
        /// <param name="logFileName">Name of the log file.</param>
        /// <returns>IPureLoggerFactory.</returns>
        /// <autogeneratedoc />
        private IPureLoggerFactory CreatePureLoggerFactory(LogEventLevel logEventLevel,
                                                           LoggingOutputFlags loggingOutputFlags, string logFileName)
        {
            var loggerSettings      = new SerilogLoggerSettings(_fileSystem, logEventLevel, loggingOutputFlags);
            var loggerConfiguration = LoggerConfigurationFactory.CreateLoggerConfiguration((string)null, logFileName, loggerSettings, IncludeLogEventTest);

            return(LoggerConfigurationFactory.CreatePureSeriLoggerFactory(loggerSettings, loggerConfiguration));
        }
        public void PureSeriLoggerFactory_CreateSerilogFactory_LoggerConfiguration()
        {
            var loggerSettings = new SerilogLoggerSettings(new FileSystem(typeof(PureSeriLoggerFactoryUnitTests)), LogEventLevel.Debug, LoggingOutputFlags.Default);

            var loggerFactory = LoggerConfigurationFactory.CreateSerilogFactory(loggerSettings);
            loggerFactory.Should().NotBeNull();

        }
Пример #5
0
        public void SerilogLoggerSettings_Constructor()
        {
            var loggerSettings = new SerilogLoggerSettings(_fileSystem, LogEventLevel.Debug, LoggingOutputFlags.Default);

            loggerSettings.Should().NotBeNull().And.Subject.Should().BeAssignableTo <ISerilogLoggerSettings>();
            loggerSettings.GetLogLevel(LoggingOutputFlags.Default).InitialLogLevel.Should().Be(LogLevel.Debug);
            loggerSettings.GetLogLevel(LoggingOutputFlags.Default).MinimumLogLevel.Should().Be(LogLevel.Debug);
        }
Пример #6
0
        public void SerilogLoggerSettings_GetOrRegisterSerilogLogLevel_Defaults()
        {
            var          loggerSettings = new SerilogLoggerSettings(_fileSystem, LogEventLevel.Debug, LoggingOutputFlags.Default);
            const string testLogLevel   = "TestLogLevel";

            loggerSettings.GetOrRegisterDefaultLogLevel(LoggingOutputFlags.RollingFile).MinimumLogLevel.Should().Be(LogLevel.Debug);
            loggerSettings.GetOrRegisterDefaultLogLevel(testLogLevel).MinimumLogLevel.Should().Be(LogLevel.Debug);
        }
Пример #7
0
        public void SerilogLoggerSettings_Constructor_IConfiguration()
        {
            var configuration  = SerilogLoggerSettings.DefaultLoggerSettingsConfiguration(LogLevel.Debug);
            var loggerSettings = new SerilogLoggerSettings(_fileSystem, configuration, LoggingOutputFlags.Default);

            loggerSettings.Should().NotBeNull().And.Subject.Should().BeAssignableTo <ISerilogLoggerSettings>();
            loggerSettings.Configuration.Should().Be(configuration);
            loggerSettings.GetLogLevel(LoggingOutputFlags.Default).InitialLogLevel.Should().Be(LogLevel.Debug);
            loggerSettings.GetLogLevel(LoggingOutputFlags.Default).MinimumLogLevel.Should().Be(LogLevel.Debug);
        }
        public void PureSeriLoggerFactory_CreateLoggerConfiguration()
        {
            var loggerSettings = new SerilogLoggerSettings(new FileSystem(typeof(PureSeriLoggerFactoryUnitTests)), LogEventLevel.Debug, LoggingOutputFlags.AppFull);

            var loggerFactory = LoggerConfigurationFactory.CreateLoggerConfiguration(
                ApplicationInsightsKey, "PureSeriLoggerFactoryUnitTests.log",
                loggerSettings, IncludeLogEventTrue);

            loggerFactory.Should().NotBeNull();
        }
Пример #9
0
        public void XunitSink_CreateXUnitSerilogFactory_Formatter()
        {
            var fileSystem     = new FileSystem(typeof(XunitSinkUnitTests));
            var loggerSettings =
                new SerilogLoggerSettings(fileSystem, LogEventLevel.Debug, LoggingOutputFlags.TestCorrelator);

            var loggerFactory = XunitLoggingSink.CreateXUnitSerilogFactory(_testOutputHelper, loggerSettings,
                                                                           XUnitSerilogFormatter.RenderedCompactJsonFormatter);

            loggerFactory.Should().NotBeNull().And.Subject.Should().BeAssignableTo <IPureLoggerFactory>();
        }
Пример #10
0
        public void SerilogLoggerSettings_RegisterSerilogLogLevel_Twice()
        {
            var loggerSettings = new SerilogLoggerSettings(_fileSystem, LogEventLevel.Debug, LoggingOutputFlags.Default);

            loggerSettings.RegisterLogLevel(LoggingOutputFlags.RollingFile, LogEventLevel.Error);
            loggerSettings.GetLogLevel(LoggingOutputFlags.RollingFile).InitialLogLevel.Should().Be(LogLevel.Error);
            loggerSettings.GetLogLevel(LoggingOutputFlags.RollingFile).MinimumLogLevel.Should().Be(LogLevel.Error);

            loggerSettings.RegisterLogLevel(LoggingOutputFlags.RollingFile, LogEventLevel.Debug);
            loggerSettings.GetLogLevel(LoggingOutputFlags.RollingFile).InitialLogLevel.Should().Be(LogLevel.Error);
            loggerSettings.GetLogLevel(LoggingOutputFlags.RollingFile).MinimumLogLevel.Should().Be(LogLevel.Debug);
        }
Пример #11
0
        public void SerilogLoggerSettings_Constructor_LoggingOutputFlags(LoggingOutputFlags loggingOutputFlags)
        {
            var loggerSettings = new SerilogLoggerSettings(_fileSystem, LogEventLevel.Information, loggingOutputFlags);

            loggerSettings.Should().NotBeNull().And.Subject.Should().BeAssignableTo <ISerilogLoggerSettings>();
            var logLevel = loggerSettings.GetLogLevel(loggingOutputFlags);

            logLevel.Should().NotBeNull().And.Subject.Should().BeAssignableTo <IPureLogLevel>();

            logLevel.InitialLogLevel.Should().Be(LogLevel.Information);
            logLevel.MinimumLogLevel.Should().Be(LogLevel.Information);
        }
Пример #12
0
        public void XunitSink_CreateXUnitLoggerConfiguration_Null()
        {
            var fileSystem     = new FileSystem(typeof(XunitSinkUnitTests));
            var loggerSettings = new SerilogLoggerSettings(fileSystem, LogEventLevel.Debug, LoggingOutputFlags.TestCorrelator);

            Func <LoggerConfiguration> fx = () => XunitLoggingSink.CreateXUnitLoggerConfiguration(null, loggerSettings, XUnitSerilogFormatter.RenderedCompactJsonFormatter);

            fx.Should().Throw <ArgumentNullException>().And.ParamName.Should().Be("testOutputHelper");

            fx = () => XunitLoggingSink.CreateXUnitLoggerConfiguration(_testOutputHelper, null, XUnitSerilogFormatter.RenderedCompactJsonFormatter);

            fx.Should().Throw <ArgumentNullException>().And.ParamName.Should().Be("loggerSettings");
        }
Пример #13
0
        public void SerilogLoggerSettings_GetOrRegisterSerilogLogLevel_Overrides()
        {
            var loggerSettings = new SerilogLoggerSettings(_fileSystem, LogEventLevel.Debug, LoggingOutputFlags.Default);

            loggerSettings.RegisterSerilogLogLevel(LoggingOutputFlags.RollingFile, LogLevel.Debug).MinimumLogLevel.Should().Be(LogLevel.Debug);
            loggerSettings.RegisterSerilogLogLevel(LoggingOutputFlags.TestCorrelator, LogEventLevel.Debug).MinimumLogLevel.Should().Be(LogLevel.Debug);
            loggerSettings.RegisterLogLevel(LoggingOutputFlags.AppInsights, LogEventLevel.Debug).MinimumLogLevel.Should().Be(LogLevel.Debug);
            loggerSettings.RegisterLogLevel(LoggingOutputFlags.Console, LogLevel.Debug).MinimumLogLevel.Should().Be(LogLevel.Debug);

            loggerSettings.GetOrRegisterSerilogLogLevel(LoggingOutputFlags.RollingFile, LogLevel.Debug).MinimumLogLevel.Should().Be(LogLevel.Debug);
            loggerSettings.GetOrRegisterLogLevel(LoggingOutputFlags.AppInsights, LogLevel.Debug).MinimumLogLevel.Should().Be(LogLevel.Debug);

            loggerSettings.GetSerilogLogLevel(LoggingOutputFlags.AppInsights).MinimumLogLevel.Should().Be(LogLevel.Debug);
        }
Пример #14
0
        public void SerilogLoggerSettings_GetOrRegisterSerilogLogLevel_Twice()
        {
            var loggerSettings = new SerilogLoggerSettings(_fileSystem, LogEventLevel.Debug, LoggingOutputFlags.Default);

            loggerSettings.GetOrRegisterSerilogLogLevel(LoggingOutputFlags.RollingFile, LogEventLevel.Error);
            loggerSettings.GetLogLevel(LoggingOutputFlags.RollingFile).InitialLogLevel.Should().Be(LogLevel.Error);
            loggerSettings.GetLogLevel(LoggingOutputFlags.RollingFile).MinimumLogLevel.Should().Be(LogLevel.Error);

            loggerSettings.GetOrRegisterSerilogLogLevel(LoggingOutputFlags.RollingFile, LogEventLevel.Debug);
            loggerSettings.GetLogLevel(LoggingOutputFlags.RollingFile).InitialLogLevel.Should().Be(LogLevel.Error);

            // Does Not reset MinimumLogLevel to Debug as testLogLevel already exists
            loggerSettings.GetLogLevel(LoggingOutputFlags.RollingFile).MinimumLogLevel.Should().Be(LogLevel.Error);
        }
Пример #15
0
//        [InlineData(LogLevel.None)]
        public void SerilogLoggerSettings_Create_Default_LogLevels(LogLevel logLevel)
        {
            var loggerSettings = new SerilogLoggerSettings(_fileSystem, logLevel, LoggingOutputFlags.Default);

            loggerSettings.LoggingOutputFlags.Should().Be(LoggingOutputFlags.Default);

            // Serilog LogEventLevels
            loggerSettings.GetSerilogLogLevel(LoggingOutputFlags.Default).MinimumLogEventLevel.Should()
            .Be(SerilogLogLevel.MsftToSerilogLogLevel(logLevel));
            loggerSettings.GetSerilogLogLevel(LoggingOutputFlags.Default).InitialLogEventLevel.Should()
            .Be(SerilogLogLevel.MsftToSerilogLogLevel(logLevel));

            // Msft LogLevels
            loggerSettings.GetLogLevel(LoggingOutputFlags.Default).MinimumLogLevel.Should().Be(logLevel);
            loggerSettings.GetLogLevel(LoggingOutputFlags.Default).InitialLogLevel.Should().Be(logLevel);
        }
Пример #16
0
        /// <summary>
        /// Creates the pure logger.
        /// </summary>
        /// <param name="logEventLevel">The log event level.</param>
        /// <param name="xUnitSerilogFormatter">The x unit serilog formatter.</param>
        /// <returns>IPureLogger.</returns>
        /// <autogeneratedoc />
        private IPureLogger CreatePureLogger(LogEventLevel logEventLevel,
                                             XUnitSerilogFormatter xUnitSerilogFormatter = XUnitSerilogFormatter.RenderedCompactJsonFormatter)
        {
            var fileSystem          = new FileSystem(typeof(XunitSinkUnitTests));
            var loggerSettings      = new SerilogLoggerSettings(fileSystem, logEventLevel, LoggingOutputFlags.Testing);
            var loggerConfiguration =
                XunitLoggingSink.CreateXUnitLoggerConfiguration(_testOutputHelper, loggerSettings,
                                                                xUnitSerilogFormatter);

            var loggerFactory = XunitLoggingSink.CreateXUnitSerilogFactory(loggerSettings, loggerConfiguration);

            var logger = loggerFactory.CreatePureLogger <XunitSinkUnitTests>();

            logger.Should().NotBeNull("CreatePureLogger should always succeed");

            return(logger);
        }
        public void PureSeriLoggerFactory_CreateLoggerConfiguration_Configuration()
        {
            var loggerSettings = new SerilogLoggerSettings(new FileSystem(typeof(PureSeriLoggerFactoryUnitTests)), LogEventLevel.Debug, LoggingOutputFlags.AppFull);

            var configuration = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddEnvironmentVariables()
                .AddInMemoryCollection(
                    new Dictionary<string, string>
                    {
                        [$"{LoggerConfigurationFactory.SectionApplicationInsights}:{LoggerConfigurationFactory.InstrumentationKey}"] = ApplicationInsightsKey,
                    }
                )
                .Build();
            
            var loggerFactory = LoggerConfigurationFactory.CreateLoggerConfiguration(
                configuration, "PureSeriLoggerFactoryUnitTests.log",
                loggerSettings, IncludeLogEventTrue);

            loggerFactory.Should().NotBeNull();
        }
Пример #18
0
        public void XunitSink_Create_TestCorrelator()
        {
            var fileSystem     = new FileSystem(typeof(XunitSinkUnitTests));
            var loggerSettings =
                new SerilogLoggerSettings(fileSystem, LogEventLevel.Debug, LoggingOutputFlags.TestCorrelator);
            var loggerConfiguration = XunitLoggingSink.CreateXUnitLoggerConfiguration(_testOutputHelper, loggerSettings,
                                                                                      XUnitSerilogFormatter.RenderedCompactJsonFormatter);
            var loggerFactory = XunitLoggingSink.CreateXUnitSerilogFactory(loggerSettings, loggerConfiguration);
            var logger        = loggerFactory.CreatePureLogger <XunitSinkUnitTests>();

            logger.Should().NotBeNull("CreatePureLogger should always succeed");

            using (TestCorrelator.CreateContext())
            {
                logger.LogInformation("Test: XunitSink_Create_TestCorrelator");

                TestCorrelator.GetLogEventsFromCurrentContext()
                .Should().ContainSingle()
                .Which.MessageTemplate.Text
                .Should().Be("Test: XunitSink_Create_TestCorrelator");
            }
        }
Пример #19
0
        public void SerilogLoggerSettings_LogFolderPath()
        {
            var loggerSettings = new SerilogLoggerSettings(_fileSystem, LogEventLevel.Debug, LoggingOutputFlags.Default);

            loggerSettings.LogFolderPath.Should().NotBeNullOrEmpty();
        }