From c2fee613a107a797cdfe326197e15ef9332f42d8 Mon Sep 17 00:00:00 2001 From: Jonathan Sant Date: Sat, 9 Dec 2017 18:34:25 +0100 Subject: [PATCH 1/3] Ability to register the `SerilogLoggerFactory` I needed to retrieve some configuration prior to registering the logger. `UseSerilog` is invoked before the `Startup` class. I sought to register the Factory manually but found out that is internal. I think that `SerilogLoggerFactory` is the main take away from this library and therefore exposing it would make it more flexible for those who don't want to use the extension methods. --- src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs b/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs index ad5af8c..4deb2dd 100644 --- a/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs +++ b/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs @@ -18,7 +18,7 @@ namespace Serilog.AspNetCore { - class SerilogLoggerFactory : ILoggerFactory + public class SerilogLoggerFactory : ILoggerFactory { readonly SerilogLoggerProvider _provider; From 285f0f6d897c94ab685e5d03814edc2e3f2b6a50 Mon Sep 17 00:00:00 2001 From: Jonathan Sant Date: Sat, 9 Dec 2017 18:53:20 +0100 Subject: [PATCH 2/3] Added XML comments for a publicly exposed class --- .../AspNetCore/SerilogLoggerFactory.cs | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs b/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs index 4deb2dd..876e2c6 100644 --- a/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs +++ b/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs @@ -18,26 +18,49 @@ namespace Serilog.AspNetCore { - public class SerilogLoggerFactory : ILoggerFactory + /// + /// Implements Microsoft's ILoggerFactory so that we can inject Serilog Logger. + /// + /// + public class SerilogLoggerFactory : ILoggerFactory { readonly SerilogLoggerProvider _provider; - public SerilogLoggerFactory(Serilog.ILogger logger = null, bool dispose = false) + /// + /// Initializes a new instance of the class. + /// + /// The logger. + /// if set to true [dispose]. + public SerilogLoggerFactory(Serilog.ILogger logger = null, bool dispose = false) { _provider = new SerilogLoggerProvider(logger, dispose); } - public void Dispose() + /// + /// Disposes the provider. + /// + public void Dispose() { _provider.Dispose(); } - public Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName) + /// + /// 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); } - public void AddProvider(ILoggerProvider provider) + /// + /// Adds an to the logging system. + /// + /// The . + public void AddProvider(ILoggerProvider provider) { SelfLog.WriteLine("Ignoring added logger provider {0}", provider); } From 9cf699b336cc4467866ea9f8c4aaeff49ee4e0a8 Mon Sep 17 00:00:00 2001 From: Jonathan Sant Date: Sat, 16 Dec 2017 15:04:58 +0100 Subject: [PATCH 3/3] chore(expose factory): reformatting and doc update --- .../AspNetCore/SerilogLoggerFactory.cs | 59 ++++++++++--------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs b/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs index 876e2c6..afec510 100644 --- a/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs +++ b/src/Serilog.AspNetCore/AspNetCore/SerilogLoggerFactory.cs @@ -18,49 +18,50 @@ namespace Serilog.AspNetCore { - /// - /// Implements Microsoft's ILoggerFactory so that we can inject Serilog Logger. - /// - /// - public class SerilogLoggerFactory : ILoggerFactory + /// + /// Implements so that we can inject Serilog Logger. + /// + public class SerilogLoggerFactory : ILoggerFactory { - readonly SerilogLoggerProvider _provider; + private readonly SerilogLoggerProvider _provider; - /// - /// Initializes a new instance of the class. - /// - /// The logger. - /// if set to true [dispose]. - 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() + /// + /// 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) + /// + /// 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) + /// + /// Adds an to the logging system. + /// + /// The . + public void AddProvider(ILoggerProvider provider) { SelfLog.WriteLine("Ignoring added logger provider {0}", provider); }