@@ -32,7 +32,7 @@ public static class SerilogHostBuilderExtensions
32
32
// root logger, registering it as a singleton may lead to disposal along with the container by MEDI. This isn't
33
33
// always desirable, i.e. we may be handed a logger and `dispose: false`, so wrapping it keeps us in control
34
34
// of when the logger is disposed.
35
- private class RegisteredLogger
35
+ internal class RegisteredLogger
36
36
{
37
37
public RegisteredLogger ( ILogger logger )
38
38
{
@@ -64,58 +64,6 @@ public static IHostBuilder UseSerilog(
64
64
services . AddLogging ( logging => logging . AddSerilog ( logger , dispose , providers ) ) ) ;
65
65
}
66
66
67
- /// <summary>
68
- /// Sets Serilog as the logging provider.
69
- /// </summary>
70
- /// <param name="builder">The logging builder to configure.</param>
71
- /// <param name="logger">The Serilog logger; if not supplied, the static <see cref="Serilog.Log"/> will be used.</param>
72
- /// <param name="dispose">When <c>true</c>, dispose <paramref name="logger"/> when the framework disposes the provider. If the
73
- /// logger is not specified but <paramref name="dispose"/> is <c>true</c>, the <see cref="Serilog.Log.CloseAndFlush()"/> method will be
74
- /// called on the static <see cref="Serilog.Log"/> class instead.</param>
75
- /// <param name="providers">A <see cref="LoggerProviderCollection"/> registered in the Serilog pipeline using the
76
- /// <c>WriteTo.Providers()</c> configuration method, enabling other <see cref="Microsoft.Extensions.Logging.ILoggerProvider"/>s to receive events. By
77
- /// default, only Serilog sinks will receive events.</param>
78
- /// <returns>The host builder.</returns>
79
- public static ILoggingBuilder AddSerilog (
80
- this ILoggingBuilder builder ,
81
- ILogger logger = null ,
82
- bool dispose = false ,
83
- LoggerProviderCollection providers = null )
84
- {
85
- if ( builder == null ) throw new ArgumentNullException ( nameof ( builder ) ) ;
86
-
87
- var services = builder . Services ;
88
- if ( providers != null )
89
- {
90
- services . AddSingleton < ILoggerFactory > ( services =>
91
- {
92
- var factory = new SerilogLoggerFactory ( logger , dispose , providers ) ;
93
-
94
- foreach ( var provider in services . GetServices < ILoggerProvider > ( ) )
95
- factory . AddProvider ( provider ) ;
96
-
97
- return factory ;
98
- } ) ;
99
- }
100
- else
101
- {
102
- services . AddSingleton < ILoggerFactory > ( services => new SerilogLoggerFactory ( logger , dispose ) ) ;
103
- }
104
-
105
- if ( logger != null )
106
- {
107
- // This won't (and shouldn't) take ownership of the logger.
108
- services . AddSingleton ( logger ) ;
109
-
110
- // Still need to use RegisteredLogger as it is used by ConfigureDiagnosticContext.
111
- services . AddSingleton ( new RegisteredLogger ( logger ) ) ;
112
- }
113
- bool useRegisteredLogger = logger != null ;
114
- ConfigureDiagnosticContext ( services , useRegisteredLogger ) ;
115
-
116
- return builder ;
117
- }
118
-
119
67
/// <summary>Sets Serilog as the logging provider.</summary>
120
68
/// <remarks>
121
69
/// A <see cref="HostBuilderContext"/> is supplied so that configuration and hosting information can be used.
@@ -258,7 +206,7 @@ public static IHostBuilder UseSerilog(
258
206
return builder ;
259
207
}
260
208
261
- private static void ConfigureDiagnosticContext ( IServiceCollection collection , bool useRegisteredLogger )
209
+ internal static void ConfigureDiagnosticContext ( IServiceCollection collection , bool useRegisteredLogger )
262
210
{
263
211
if ( collection == null ) throw new ArgumentNullException ( nameof ( collection ) ) ;
264
212
0 commit comments