public void should_use_serilog_silent_logger() { var factory = new SerilogFactory(); var logger = factory.Create("TestingLogger"); WriteTestLogs(logger); }
public static void Main(string[] args) { var loggerFactory = new SerilogFactory(); Serilog.Log.Logger = loggerFactory.CreateLogger(); CreateHostBuilder(args).Build().Run(); }
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); }
/// <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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
/// <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); }