Skip to content

Commit 6edbd97

Browse files
authored
VCST-2785: load Serilog configuration after module initialize (#2893)
1 parent b7606e8 commit 6edbd97

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

src/VirtoCommerce.Platform.Web/Startup.cs

+20-16
Original file line numberDiff line numberDiff line change
@@ -100,21 +100,10 @@ public Startup(IConfiguration configuration, IWebHostEnvironment hostingEnvironm
100100
public void ConfigureServices(IServiceCollection services)
101101
{
102102
// Use temporary bootstrap logger (which will be replaced with configured version later) until DI initialization completed
103-
Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(Configuration).CreateBootstrapLogger();
104-
105-
services.AddSerilog((serviceProvider, loggerConfiguration) =>
106-
{
107-
_ = loggerConfiguration.ReadFrom.Configuration(Configuration);
108-
109-
// Enrich configuration from external sources
110-
var configurationServices = serviceProvider.GetService<IEnumerable<ILoggerConfigurationService>>();
111-
foreach (var service in configurationServices)
112-
{
113-
service.Configure(loggerConfiguration);
114-
}
115-
// Preserve static logger (i.e. create new logger for DI, instead of reconfiguring existing)
116-
// to avoid exception about frozen logger because BuildServiceProvider is called multiple times
117-
}, preserveStaticLogger: true);
103+
var loggerConfiguration = new LoggerConfiguration()
104+
.WriteTo.Console()
105+
.WriteTo.Debug();
106+
Log.Logger = loggerConfiguration.CreateBootstrapLogger();
118107

119108
Log.ForContext<Startup>().Information("Virto Commerce is loading");
120109

@@ -513,7 +502,22 @@ public void ConfigureServices(IServiceCollection services)
513502
services.AddOptions<ExternalModuleCatalogOptions>().Bind(Configuration.GetSection("ExternalModules")).ValidateDataAnnotations();
514503
services.AddExternalModules();
515504

516-
//HangFire
505+
// Serilog (initialize after all modules DLLs were loaded)
506+
services.AddSerilog((serviceProvider, loggerConfiguration) =>
507+
{
508+
_ = loggerConfiguration.ReadFrom.Configuration(Configuration);
509+
510+
// Enrich configuration from external sources
511+
var configurationServices = serviceProvider.GetService<IEnumerable<ILoggerConfigurationService>>();
512+
foreach (var service in configurationServices)
513+
{
514+
service.Configure(loggerConfiguration);
515+
}
516+
// Preserve static logger (i.e. create new logger for DI, instead of reconfiguring existing)
517+
// to avoid exception about frozen logger because BuildServiceProvider is called multiple times
518+
}, preserveStaticLogger: true);
519+
520+
// HangFire
517521
services.AddHangfire(Configuration);
518522

519523
// Register the Swagger generator

0 commit comments

Comments
 (0)