Skip to content

Commit

Permalink
Added public method to configure the NLog ServiceLocator (Avoid assem…
Browse files Browse the repository at this point in the history
…bly lookup on static class initialization)
  • Loading branch information
snakefoot committed Apr 28, 2018
1 parent 15958cc commit 5ffc371
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions NLog.Web.AspNetCore/AspNetExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ namespace NLog.Web
/// </summary>
public static class AspNetExtensions
{
private static readonly Assembly _nlogWebAssembly = typeof(AspNetExtensions).GetTypeInfo().Assembly;

/// <summary>
/// Enable NLog Web for ASP.NET Core.
/// </summary>
Expand All @@ -43,8 +41,8 @@ public static void AddNLogWeb(this IApplicationBuilder app)
/// <returns>LoggingConfiguration for chaining</returns>
public static LoggingConfiguration ConfigureNLog(this IHostingEnvironment env, string configFileRelativePath)
{
ConfigurationItemFactory.Default.RegisterItemsFromAssembly(_nlogWebAssembly);
LogManager.AddHiddenAssembly(_nlogWebAssembly);
ConfigurationItemFactory.Default.RegisterItemsFromAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly);
LogManager.AddHiddenAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly).Assembly);
var fileName = Path.Combine(env.ContentRootPath, configFileRelativePath);
LogManager.LoadConfiguration(fileName);
return LogManager.Configuration;
Expand All @@ -63,7 +61,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(_nlogWebAssembly);
ConfigurationItemFactory.Default.RegisterItemsFromAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly);
builder.AddNLog();
return LogManager.LoadConfiguration(configFileName);
}
Expand All @@ -79,7 +77,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(_nlogWebAssembly);
ConfigurationItemFactory.Default.RegisterItemsFromAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly);
builder.AddNLog();
LogManager.Configuration = configuration;
return LogManager.LogFactory;
Expand All @@ -104,8 +102,8 @@ public static IWebHostBuilder UseNLog(this IWebHostBuilder builder, NLogAspNetCo
if (builder == null) throw new ArgumentNullException(nameof(builder));
options = options ?? NLogAspNetCoreOptions.Default;

ConfigurationItemFactory.Default.RegisterItemsFromAssembly(_nlogWebAssembly);
LogManager.AddHiddenAssembly(_nlogWebAssembly);
ConfigurationItemFactory.Default.RegisterItemsFromAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly);
LogManager.AddHiddenAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly);

builder.ConfigureServices(services =>
{
Expand Down Expand Up @@ -137,8 +135,8 @@ public static IWebHostBuilder UseNLog(this IWebHostBuilder builder, NLogAspNetCo
public static IServiceProvider SetupNLogServiceLocator(this IServiceProvider serviceProvider)
{
ServiceLocator.ServiceProvider = serviceProvider;
ConfigurationItemFactory.Default.RegisterItemsFromAssembly(_nlogWebAssembly);
LogManager.AddHiddenAssembly(_nlogWebAssembly);
ConfigurationItemFactory.Default.RegisterItemsFromAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly);
LogManager.AddHiddenAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly);
return serviceProvider;
}
}
Expand Down

0 comments on commit 5ffc371

Please sign in to comment.