Skip to content

Commit 79b7b1e

Browse files
authored
Pass null to SerilogLoggerFactory when using static logger
1 parent 91d3eee commit 79b7b1e

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/Serilog.AspNetCore/SerilogWebHostBuilderExtensions.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,17 @@ public static IWebHostBuilder UseSerilog(this IWebHostBuilder builder, Action<We
6060
var loggerConfiguration = new LoggerConfiguration();
6161
configureLogger(context, loggerConfiguration);
6262
var logger = loggerConfiguration.CreateLogger();
63-
collection.AddSingleton<ILoggerFactory>(services => new SerilogLoggerFactory(logger, true));
64-
if (!preserveStaticLogger) Log.Logger = logger;
63+
if (preserveStaticLogger)
64+
{
65+
collection.AddSingleton<ILoggerFactory>(services => new SerilogLoggerFactory(logger, true));
66+
}
67+
else
68+
{
69+
// Passing a `null` logger to `SerilogLoggerFactory` results in disposal via
70+
// `Log.CloseAndFlush()`, which additionally replaces the static logger with a no-op.
71+
Log.Logger = logger;
72+
collection.AddSingleton<ILoggerFactory>(services => new SerilogLoggerFactory(null, true));
73+
}
6574
});
6675
return builder;
6776
}

0 commit comments

Comments
 (0)