Ejemplo n.º 1
0
        public void should_use_serilog_silent_logger()
        {
            var factory = new SerilogFactory();
            var logger  = factory.Create("TestingLogger");

            WriteTestLogs(logger);
        }
Ejemplo n.º 2
0
        public static void Main(string[] args)
        {
            var loggerFactory = new SerilogFactory();

            Serilog.Log.Logger = loggerFactory.CreateLogger();
            CreateHostBuilder(args).Build().Run();
        }
Ejemplo n.º 3
0
        public static Castle.Core.Logging.ILogger CreateCastleCoreLogger(CastleCoreSerilogConfig config)
        {
            var loggerConfig = new LoggerConfiguration();

            if (config.MSSqlServer != null && !string.IsNullOrEmpty(config.MSSqlServer.ConnectionString))
            {
                loggerConfig.WriteTo.MSSqlServer(config.MSSqlServer.ConnectionString, config.MSSqlServer.TableName, config.MSSqlServer.LogEventLevel, 50, null, null, true);
            }

            if (config.File != null && !string.IsNullOrEmpty(config.File.FullPath))
            {
                loggerConfig.WriteTo.File(config.File.FullPath, config.File.LogEventLevel, rollingInterval: RollingInterval.Day, fileSizeLimitBytes: 10485760, rollOnFileSizeLimit: true);
            }

            if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == EnvironmentName.Development)
            {
                loggerConfig.WriteTo.Debug(outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level}] {Message}{NewLine}{Exception}");
            }

            var serilogLogger = loggerConfig.CreateLogger();

            var serilogFactory = new SerilogFactory(serilogLogger);

            var logger = serilogFactory.Create("castle core logger");

            return(logger);
        }
        public void Instantiation()
        {
            var factory = new SerilogFactory();
            var log     = factory.GetLogger(GetType());

            Assert.IsNotNull(log);
            Assert.IsNotNull(log as SerilogLogger);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Creates a configuration for Serilog
        /// </summary>
        /// <param name="componentName">Name of the component which is starting up</param>
        /// <param name="telemetryConfiguration">Configuration around telemetry for agent</param>
        /// <param name="serviceProvider">Registered services in the application</param>
        protected virtual LoggerConfiguration CreateSerilogConfiguration(string componentName, TelemetryConfiguration telemetryConfiguration, IServiceProvider serviceProvider)
        {
            var defaultLogLevel     = SerilogFactory.DetermineSinkLogLevel(telemetryConfiguration.DefaultVerbosity);
            var loggerConfiguration = new LoggerConfiguration()
                                      .MinimumLevel.Is(defaultLogLevel);

            loggerConfiguration = EnrichTelemetry(componentName, serviceProvider, loggerConfiguration);
            loggerConfiguration = FilterTelemetry(loggerConfiguration);
            loggerConfiguration = WriteTelemetryToSinks(telemetryConfiguration, loggerConfiguration);

            return(loggerConfiguration);
        }
Ejemplo n.º 6
0
        public void should_log_objects()
        {
            var output = new StringWriter();

            var config = new LoggerConfiguration()
                         .WriteTo.TextWriter(output);

            var factory = new SerilogFactory(config);
            var logger  = factory.Create("TestingLogger", LoggerLevel.Debug);

            logger.DebugFormat("Testing Debug {@TestingData}", new { Name = "test", Value = 55 });

            var logs = output.ToString();

            StringAssert.Contains("{ Name: \"test\", Value: 55 }", logs);
        }
Ejemplo n.º 7
0
        public void should_log_exceptions()
        {
            var output = new StringWriter();

            var serilogLogger = new LoggerConfiguration()
                                .MinimumLevel.Debug()
                                .WriteTo.TextWriter(output)
                                .CreateLogger();

            var factory = new SerilogFactory(serilogLogger);
            var logger  = factory.Create("TestingLogger");

            logger.Debug("Debug", new Exception("Debug Exception 1"));
            logger.DebugFormat(new Exception("Debug Exception 2"), "Debug");
            logger.DebugFormat(new Exception("Debug Exception 3"), null, "Debug");
            logger.Error("Error", new Exception("Error Exception 1"));
            logger.ErrorFormat(new Exception("Error Exception 2"), "Error");
            logger.ErrorFormat(new Exception("Error Exception 3"), null, "Error");
            logger.Fatal("Fatal", new Exception("Fatal Exception 1"));
            logger.FatalFormat(new Exception("Fatal Exception 2"), "Fatal");
            logger.FatalFormat(new Exception("Fatal Exception 3"), null, "Fatal");
            logger.Info("Info", new Exception("Info Exception 1"));
            logger.InfoFormat(new Exception("Info Exception 2"), "Info");
            logger.InfoFormat(new Exception("Info Exception 3"), null, "Info");
            logger.Warn("Warn", new Exception("Warn Exception 1"));
            logger.WarnFormat(new Exception("Warn Exception 2"), "Warn");
            logger.WarnFormat(new Exception("Warn Exception 3"), null, "Warn");

            var logs = output.ToString();

            StringAssert.Contains("Debug Exception 1", logs);
            StringAssert.Contains("Debug Exception 2", logs);
            StringAssert.Contains("Debug Exception 3", logs);
            StringAssert.Contains("Error Exception 1", logs);
            StringAssert.Contains("Error Exception 2", logs);
            StringAssert.Contains("Error Exception 3", logs);
            StringAssert.Contains("Fatal Exception 1", logs);
            StringAssert.Contains("Fatal Exception 2", logs);
            StringAssert.Contains("Fatal Exception 3", logs);
            StringAssert.Contains("Info Exception 1", logs);
            StringAssert.Contains("Info Exception 2", logs);
            StringAssert.Contains("Info Exception 3", logs);
            StringAssert.Contains("Warn Exception 1", logs);
            StringAssert.Contains("Warn Exception 2", logs);
            StringAssert.Contains("Warn Exception 3", logs);
        }
Ejemplo n.º 8
0
        public void should_log_work_with_second_creator()
        {
            var output = new StringWriter();

            var config = new LoggerConfiguration()
                         .WriteTo.TextWriter(output);

            var factory = new SerilogFactory(config);
            var logger  = factory.Create("TestingLogger", LoggerLevel.Debug);

            WriteTestLogs(logger);

            var logs = output.ToString();

            StringAssert.Contains("Testing debug", logs);
            StringAssert.Contains("Testing warning", logs);
        }
Ejemplo n.º 9
0
        public void should_not_log_debug_with_new_serilog_config()
        {
            var output = new StringWriter();

            // New LoggerConfiguration which defaults to Information
            var serilogLogger = new LoggerConfiguration().WriteTo.TextWriter(output).CreateLogger();

            var factory = new SerilogFactory(serilogLogger);
            var logger  = factory.Create("TestingLogger");

            WriteTestLogs(logger);

            var logs = output.ToString();

            StringAssert.DoesNotContain("Testing debug", logs);
            StringAssert.Contains("Testing info", logs);
            StringAssert.Contains("Testing warning", logs);
        }
Ejemplo n.º 10
0
        public void should_log_info_when_off()
        {
            var output = new StringWriter();

            var config = new LoggerConfiguration()
                         .WriteTo.TextWriter(output);

            var factory = new SerilogFactory(config);
            var logger  = factory.Create("TestingLogger", LoggerLevel.Off);

            WriteTestLogs(logger);

            var logs = output.ToString();

            StringAssert.Contains("Testing info", logs);
            StringAssert.DoesNotContain("Testing debug", logs);
            StringAssert.Contains("Testing warning", logs);
        }
Ejemplo n.º 11
0
        public void should_log_work_with_first_creator()
        {
            var output = new StringWriter();

            var serilogLogger = new LoggerConfiguration()
                                .MinimumLevel.Debug()
                                .WriteTo.TextWriter(output)
                                .CreateLogger();

            var factory = new SerilogFactory(serilogLogger);
            var logger  = factory.Create("TestingLogger");

            WriteTestLogs(logger);

            var logs = output.ToString();

            StringAssert.Contains("Testing debug", logs);
            StringAssert.Contains("Testing warning", logs);
        }
Ejemplo n.º 12
0
        public void should_log_with_source_context()
        {
            var output = new StringWriter();
            var config = new LoggerConfiguration()
                         .MinimumLevel.Debug()
                         .WriteTo.TextWriter(output);

            var factory = new SerilogFactory(config);

            var logger1 = factory.Create("MyLogger1");
            var logger2 = factory.Create("MyLogger2");

            logger1.Info("Test1 using {SourceContext}");
            logger2.Debug("Test2 using {SourceContext}");

            var logs = output.ToString();

            StringAssert.Contains("MyLogger1", logs);
            StringAssert.Contains("MyLogger2", logs);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Configures what sinks to write telemetry to
        /// </summary>
        /// <param name="telemetryConfiguration">Agent configuration with regards to telemetry</param>
        /// <param name="loggerConfiguration">Current Serilog configuration</param>
        /// <returns>Updated Serilog configuration with sinks</returns>
        protected virtual LoggerConfiguration WriteTelemetryToSinks(TelemetryConfiguration telemetryConfiguration, LoggerConfiguration loggerConfiguration)
        {
            var appInsightsConfig = telemetryConfiguration.ApplicationInsights;

            if (appInsightsConfig?.IsEnabled == true)
            {
                var logLevel = SerilogFactory.DetermineSinkLogLevel(appInsightsConfig.Verbosity);
                loggerConfiguration.WriteTo.AzureApplicationInsights(appInsightsConfig.InstrumentationKey, restrictedToMinimumLevel: logLevel);
            }

            var consoleLogConfig = telemetryConfiguration.ContainerLogs;

            if (consoleLogConfig?.IsEnabled == true)
            {
                var logLevel = SerilogFactory.DetermineSinkLogLevel(consoleLogConfig.Verbosity);
                loggerConfiguration.WriteTo.Console(restrictedToMinimumLevel: logLevel);
            }

            return(loggerConfiguration);
        }