Register logging before trying to use ILoggerFactory in UmbracoCoreServiceCollectionExtensions

Before we used serviceProvider.GetService<ILoggerFactory>() with a service provider that were build before logging was configured, therefore the loggerfactory was empty and a lot of logs were missing
This commit is contained in:
Mole
2020-09-24 09:39:48 +02:00
parent 35443f0e71
commit 25f13629cb

View File

@@ -266,8 +266,6 @@ namespace Umbraco.Extensions
var hostingSettings = serviceProvider.GetService<IOptionsMonitor<HostingSettings>>();
var typeFinderSettings = serviceProvider.GetService<IOptionsMonitor<TypeFinderSettings>>();
var loggerFactory = serviceProvider.GetService<ILoggerFactory>();
var dbProviderFactoryCreator = serviceProvider.GetRequiredService<IDbProviderFactoryCreator>();
CreateCompositionRoot(services,
@@ -276,10 +274,10 @@ namespace Umbraco.Extensions
webHostEnvironment,
loggingConfiguration,
configuration,
out var logger, out var ioHelper, out var hostingEnvironment, out var backOfficeInfo, out var profiler);
out var logger, out var loggerFactory, out var ioHelper, out var hostingEnvironment, out var backOfficeInfo, out var profiler);
var umbracoVersion = new UmbracoVersion();
var typeFinder = CreateTypeFinder(serviceProvider.GetService<ILoggerFactory>(), profiler, webHostEnvironment, entryAssembly, typeFinderSettings);
var typeFinder = CreateTypeFinder(loggerFactory, profiler, webHostEnvironment, entryAssembly, typeFinderSettings);
var coreRuntime = getRuntime(
globalSettings.CurrentValue,
@@ -357,6 +355,7 @@ namespace Umbraco.Extensions
ILoggingConfiguration loggingConfiguration,
IConfiguration configuration,
out ILogger logger,
out ILoggerFactory loggerFactory,
out IIOHelper ioHelper,
out Core.Hosting.IHostingEnvironment hostingEnvironment,
out IBackOfficeInfo backOfficeInfo,
@@ -367,7 +366,7 @@ namespace Umbraco.Extensions
hostingEnvironment = new AspNetCoreHostingEnvironment(hostingSettings, webHostEnvironment);
ioHelper = new IOHelper(hostingEnvironment);
logger = AddLogger(services, hostingEnvironment, loggingConfiguration, configuration);
logger = AddLogger(services, hostingEnvironment, loggingConfiguration, configuration, out loggerFactory);
backOfficeInfo = new AspNetCoreBackOfficeInfo(globalSettings);
profiler = GetWebProfiler(hostingEnvironment);
@@ -378,7 +377,12 @@ namespace Umbraco.Extensions
/// Create and configure the logger
/// </summary>
/// <param name="hostingEnvironment"></param>
private static ILogger AddLogger(IServiceCollection services, Core.Hosting.IHostingEnvironment hostingEnvironment, ILoggingConfiguration loggingConfiguration, IConfiguration configuration)
private static ILogger AddLogger(
IServiceCollection services,
Core.Hosting.IHostingEnvironment hostingEnvironment,
ILoggingConfiguration loggingConfiguration,
IConfiguration configuration,
out ILoggerFactory loggerFactory)
{
// Create a serilog logger
var logger = SerilogLogger.CreateWithDefaultConfiguration(hostingEnvironment, loggingConfiguration, configuration);
@@ -413,7 +417,8 @@ namespace Umbraco.Extensions
// // Consumed by user code
// services.AddSingleton<IDiagnosticContext>(diagnosticContext);
var serviceProvider = services.BuildServiceProvider();
return serviceProvider.GetRequiredService<ILoggerFactory>().CreateLogger("Generic Logger");
loggerFactory = serviceProvider.GetRequiredService<ILoggerFactory>();
return loggerFactory.CreateLogger("Generic Logger");
}
private static IProfiler GetWebProfiler(Umbraco.Core.Hosting.IHostingEnvironment hostingEnvironment)