/// <summary> /// Enable NLog as logging provider in .NET Core. /// </summary> /// <param name="factory"></param> /// <param name="options">NLog options</param> /// <returns>ILoggerFactory for chaining</returns> public static ILoggerFactory AddNLog(this ILoggerFactory factory, NLogProviderOptions options) { ConfigureHiddenAssemblies(); using (var provider = new NLogLoggerProvider(options)) { factory.AddProvider(provider); } return(factory); }
private static NLogLoggerProvider CreateNLogLoggerProvider(IServiceProvider serviceProvider, IConfiguration configuration, NLogProviderOptions options, LogFactory logFactory) { NLogLoggerProvider provider = new NLogLoggerProvider(options ?? NLogProviderOptions.Default, logFactory ?? LogManager.LogFactory); configuration = SetupConfiguration(serviceProvider, configuration); if (configuration != null && options == null) { provider.Configure(configuration.GetSection("Logging:NLog")); } return(provider); }
/// <summary> /// Enable NLog as logging provider in ASP.NET Core. /// </summary> /// <param name="factory"></param> /// <returns></returns> public static ILoggerFactory AddNLog(this ILoggerFactory factory) { //ignore this LogManager.AddHiddenAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly); using (var provider = new NLogLoggerProvider()) { factory.AddProvider(provider); } return(factory); }
private static NLogLoggerProvider CreateNLogProvider(IConfiguration configuration) { var provider = new NLogLoggerProvider(new NLogProviderOptions()); if (configuration != null) { ConfigSettingLayoutRenderer.DefaultConfiguration = configuration; provider.Configure(configuration.GetSection("Logging:NLog")); } return(provider); }
/// <summary> /// Enable NLog as logging provider in ASP.NET Core. /// </summary> /// <param name="factory"></param> /// <returns></returns> public static ILoggerFactory AddNLog(this ILoggerFactory factory) { //ignore this LogManager.AddHiddenAssembly(Assembly.Load(new AssemblyName("Microsoft.Extensions.Logging"))); LogManager.AddHiddenAssembly(Assembly.Load(new AssemblyName("Microsoft.Extensions.Logging.Abstractions"))); LogManager.AddHiddenAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly); using (var provider = new NLogLoggerProvider()) { factory.AddProvider(provider); } return factory; }
/// <summary> /// Enable NLog as logging provider in ASP.NET Core. /// </summary> /// <param name="factory"></param> /// <returns></returns> public static ILoggerFactory AddNLog(this ILoggerFactory factory) { //ignore this LogManager.AddHiddenAssembly(Assembly.Load(new AssemblyName("Microsoft.Extensions.Logging"))); LogManager.AddHiddenAssembly(Assembly.Load(new AssemblyName("Microsoft.Extensions.Logging.Abstractions"))); LogManager.AddHiddenAssembly(typeof(AspNetExtensions).GetTypeInfo().Assembly); using (var provider = new NLogLoggerProvider()) { factory.AddProvider(provider); } return(factory); }
private static NLogLoggerProvider CreateNLogLoggerProvider(IServiceProvider serviceProvider, IConfiguration configuration, NLogProviderOptions options) { NLogLoggerProvider provider = new NLogLoggerProvider(options ?? NLogProviderOptions.Default); configuration = configuration ?? (serviceProvider?.GetService(typeof(IConfiguration)) as IConfiguration); if (configuration != null) { ConfigSettingLayoutRenderer.DefaultConfiguration = configuration; if (options == null) { provider.Configure(configuration.GetSection("Logging:NLog")); } } return(provider); }
private static NLogLoggerProvider CreateNLogLoggerProvider(IServiceProvider serviceProvider, IConfiguration configuration, NLogProviderOptions options, LogFactory logFactory) { NLogLoggerProvider provider = new NLogLoggerProvider(options ?? NLogProviderOptions.Default, logFactory ?? LogManager.LogFactory); configuration = SetupConfiguration(serviceProvider, configuration); if (serviceProvider != null && provider.Options.RegisterServiceProvider) { provider.LogFactory.ServiceRepository.RegisterService(typeof(IServiceProvider), serviceProvider); } if (configuration != null) { provider.Configure(configuration.GetSection("Logging:NLog")); provider.TryLoadConfigurationFromSection(configuration); } return(provider); }
internal static void TryAddNLogLoggingProvider(this IServiceCollection services, Action <IServiceCollection, Action <ILoggingBuilder> > addLogging, IConfiguration configuration, NLogProviderOptions options, Func <IServiceProvider, IConfiguration, NLogProviderOptions, NLogLoggerProvider> factory) { var sharedFactory = factory; if (options?.ReplaceLoggerFactory == true) { NLogLoggerProvider singleInstance = null; // Ensure that registration of ILoggerFactory and ILoggerProvider shares the same single instance sharedFactory = (provider, cfg, opt) => singleInstance ?? (singleInstance = factory(provider, cfg, opt)); addLogging?.Invoke(services, (builder) => builder?.ClearProviders()); // Cleanup the existing LoggerFactory, before replacing it with NLogLoggerFactory services.Replace(ServiceDescriptor.Singleton <ILoggerFactory, NLogLoggerFactory>(serviceProvider => new NLogLoggerFactory(sharedFactory(serviceProvider, configuration, options)))); } services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, NLogLoggerProvider>(serviceProvider => sharedFactory(serviceProvider, configuration, options))); if (options?.RemoveLoggerFactoryFilter == true) { // Will forward all messages to NLog if not specifically overridden by user addLogging?.Invoke(services, (builder) => builder?.AddFilter <NLogLoggerProvider>(null, Microsoft.Extensions.Logging.LogLevel.Trace)); } }
internal static void TryLoadConfigurationFromSection(this NLogLoggerProvider loggerProvider, IConfiguration configuration) { if (string.IsNullOrEmpty(loggerProvider.Options.LoggingConfigurationSectionName)) { return; } var nlogConfig = configuration.GetSection(loggerProvider.Options.LoggingConfigurationSectionName); if (nlogConfig?.GetChildren()?.Any() == true) { loggerProvider.LogFactory.Setup().LoadConfiguration(configBuilder => { if (configBuilder.Configuration.LoggingRules.Count == 0 && configBuilder.Configuration.AllTargets.Count == 0) { configBuilder.Configuration = new NLogLoggingConfiguration(nlogConfig, loggerProvider.LogFactory); } }); } else { Common.InternalLogger.Debug("Skip loading NLogLoggingConfiguration from empty config section: {0}", loggerProvider.Options.LoggingConfigurationSectionName); } }
/// <summary> /// New factory with provider. /// </summary> /// <param name="provider"></param> public NLogLoggerFactory(NLogLoggerProvider provider) { _provider = provider; }
/// <summary> /// New factory with options. /// </summary> /// <param name="options"></param> public NLogLoggerFactory(NLogProviderOptions options) { _provider = new NLogLoggerProvider(options); }
/// <summary> /// New factory with default options /// </summary> public NLogLoggerFactory() { _provider = new NLogLoggerProvider(); }