From 77a0ec70dcd74c4f0c529d242420ea40a5693a4b Mon Sep 17 00:00:00 2001 From: Rolf Kristensen Date: Wed, 11 Apr 2018 07:15:12 +0200 Subject: [PATCH] Added public method to configure the NLog ServiceLocator (One assembly lookup) --- NLog.Web.AspNetCore/AspNetExtensions.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/NLog.Web.AspNetCore/AspNetExtensions.cs b/NLog.Web.AspNetCore/AspNetExtensions.cs index 0a86ae30..f63cab2e 100644 --- a/NLog.Web.AspNetCore/AspNetExtensions.cs +++ b/NLog.Web.AspNetCore/AspNetExtensions.cs @@ -21,6 +21,8 @@ namespace NLog.Web /// public static class AspNetExtensions { + private static readonly Assembly _nlogWebAssembly = typeof(AspNetExtensions).GetTypeInfo().Assembly; + /// /// Enable NLog Web for ASP.NET Core. /// @@ -41,8 +43,8 @@ public static void AddNLogWeb(this IApplicationBuilder app) /// LoggingConfiguration for chaining public static LoggingConfiguration ConfigureNLog(this IHostingEnvironment env, string configFileRelativePath) { - ConfigurationItemFactory.Default.RegisterItemsFromAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly); - LogManager.AddHiddenAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly); + ConfigurationItemFactory.Default.RegisterItemsFromAssembly(_nlogWebAssembly); + LogManager.AddHiddenAssembly(_nlogWebAssembly); var fileName = Path.Combine(env.ContentRootPath, configFileRelativePath); LogManager.LoadConfiguration(fileName); return LogManager.Configuration; @@ -61,7 +63,7 @@ public static LoggingConfiguration ConfigureNLog(this IHostingEnvironment env, s [Obsolete("Use UseNLog() on IWebHostBuilder, and NLog.Web.NLogBuilder.ConfigureNLog()")] public static LogFactory ConfigureNLog(this ILoggingBuilder builder, string configFileName) { - ConfigurationItemFactory.Default.RegisterItemsFromAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly); + ConfigurationItemFactory.Default.RegisterItemsFromAssembly(_nlogWebAssembly); builder.AddNLog(); return LogManager.LoadConfiguration(configFileName); } @@ -77,7 +79,7 @@ public static LogFactory ConfigureNLog(this ILoggingBuilder builder, string conf [Obsolete("Use UseNLog() on IWebHostBuilder, and NLog.Web.NLogBuilder.ConfigureNLog()")] public static LogFactory ConfigureNLog(this ILoggingBuilder builder, LoggingConfiguration configuration) { - ConfigurationItemFactory.Default.RegisterItemsFromAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly); + ConfigurationItemFactory.Default.RegisterItemsFromAssembly(_nlogWebAssembly); builder.AddNLog(); LogManager.Configuration = configuration; return LogManager.LogFactory; @@ -102,8 +104,8 @@ public static IWebHostBuilder UseNLog(this IWebHostBuilder builder, NLogAspNetCo if (builder == null) throw new ArgumentNullException(nameof(builder)); options = options ?? NLogAspNetCoreOptions.Default; - ConfigurationItemFactory.Default.RegisterItemsFromAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly); - LogManager.AddHiddenAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly); + ConfigurationItemFactory.Default.RegisterItemsFromAssembly(_nlogWebAssembly); + LogManager.AddHiddenAssembly(_nlogWebAssembly); builder.ConfigureServices(services => { @@ -135,8 +137,8 @@ public static IWebHostBuilder UseNLog(this IWebHostBuilder builder, NLogAspNetCo public static IServiceProvider SetupNLogServiceLocator(this IServiceProvider serviceProvider) { ServiceLocator.ServiceProvider = serviceProvider; - ConfigurationItemFactory.Default.RegisterItemsFromAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly); - LogManager.AddHiddenAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly); + ConfigurationItemFactory.Default.RegisterItemsFromAssembly(_nlogWebAssembly); + LogManager.AddHiddenAssembly(_nlogWebAssembly); return serviceProvider; } }