diff --git a/README.md b/README.md index dab72e6..d8e4d47 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ public class Program } ``` -Then, add `UseSerilog()` to the web host builder in `BuildWebHost()`. +**Then**, add `UseSerilog()` to the web host builder in `BuildWebHost()`. ```csharp public static IWebHost BuildWebHost(string[] args) => @@ -92,6 +92,7 @@ With _Serilog.AspNetCore_ installed and configured, you can write log messages d You can alternatively configure Serilog using a delegate as shown below: ```csharp + // dotnet add package Serilog.Settings.Configuration .UseSerilog((hostingContext, loggerConfiguration) => loggerConfiguration .ReadFrom.Configuration(hostingContext.Configuration) .Enrich.FromLogContext() diff --git a/samples/SimpleWebSample/Program.cs b/samples/SimpleWebSample/Program.cs index e080844..35c7cc8 100644 --- a/samples/SimpleWebSample/Program.cs +++ b/samples/SimpleWebSample/Program.cs @@ -1,5 +1,6 @@ -using System; +using System; using System.IO; +using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Serilog; @@ -8,16 +9,18 @@ namespace SimpleWebSample { public class Program { + public static IConfiguration Configuration { get; } = new ConfigurationBuilder() + .SetBasePath(Directory.GetCurrentDirectory()) + .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) + .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", optional: true) + .AddEnvironmentVariables() + .Build(); + public static int Main(string[] args) { - var configuration = new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) - .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) - .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", optional: true) - .Build(); Log.Logger = new LoggerConfiguration() - .ReadFrom.Configuration(configuration) + .ReadFrom.Configuration(Configuration) .Enrich.FromLogContext() .WriteTo.Console() .CreateLogger(); @@ -26,16 +29,7 @@ public static int Main(string[] args) { Log.Information("Getting the motors running..."); - var host = new WebHostBuilder() - .UseKestrel() - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseIISIntegration() - .UseStartup() - .UseConfiguration(configuration) - .UseSerilog() - .Build(); - - host.Run(); + BuildWebHost(args).Run(); return 0; } @@ -49,5 +43,12 @@ public static int Main(string[] args) Log.CloseAndFlush(); } } + + public static IWebHost BuildWebHost(string[] args) => + WebHost.CreateDefaultBuilder(args) + .UseStartup() + .UseConfiguration(Configuration) + .UseSerilog() + .Build(); } } diff --git a/samples/SimpleWebSample/appsettings.json b/samples/SimpleWebSample/appsettings.json index 4478f5c..b62b89a 100644 --- a/samples/SimpleWebSample/appsettings.json +++ b/samples/SimpleWebSample/appsettings.json @@ -3,7 +3,7 @@ "MinimumLevel": { "Default": "Debug", "Override": { - "Microsoft": "Warning", + "Microsoft": "Information", "System": "Warning" } } diff --git a/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs b/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs index ad5af8c..afec510 100644 --- a/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs +++ b/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs @@ -18,25 +18,49 @@ namespace Serilog.AspNetCore { - class SerilogLoggerFactory : ILoggerFactory + /// + /// Implements so that we can inject Serilog Logger. + /// + public class SerilogLoggerFactory : ILoggerFactory { - readonly SerilogLoggerProvider _provider; + private readonly SerilogLoggerProvider _provider; - public SerilogLoggerFactory(Serilog.ILogger logger = null, bool dispose = false) + /// + /// Initializes a new instance of the class. + /// + /// The Serilog logger; if not supplied, the static will be used. + /// When true, dispose when the framework disposes the provider. If the + /// logger is not specified but is true, the method will be + /// called on the static class instead. + public SerilogLoggerFactory(ILogger logger = null, bool dispose = false) { _provider = new SerilogLoggerProvider(logger, dispose); } + /// + /// Disposes the provider. + /// public void Dispose() { _provider.Dispose(); } + /// + /// Creates a new instance. + /// + /// The category name for messages produced by the logger. + /// + /// The . + /// public Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName) { return _provider.CreateLogger(categoryName); } + /// + /// Adds an to the logging system. + /// + /// The . public void AddProvider(ILoggerProvider provider) { SelfLog.WriteLine("Ignoring added logger provider {0}", provider); diff --git a/src/Serilog.AspNetCore/Serilog.AspNetCore.csproj b/src/Serilog.AspNetCore/Serilog.AspNetCore.csproj index 2afb7c4..842e957 100644 --- a/src/Serilog.AspNetCore/Serilog.AspNetCore.csproj +++ b/src/Serilog.AspNetCore/Serilog.AspNetCore.csproj @@ -2,7 +2,7 @@ Serilog support for ASP.NET Core logging - 2.1.0 + 2.1.1 Microsoft;Serilog Contributors netstandard2.0 true