diff --git a/Ark.ReferenceProject/Core/Ark.Reference.Core.WebInterface/Program.cs b/Ark.ReferenceProject/Core/Ark.Reference.Core.WebInterface/Program.cs index b87dd25a..b022ac95 100644 --- a/Ark.ReferenceProject/Core/Ark.Reference.Core.WebInterface/Program.cs +++ b/Ark.ReferenceProject/Core/Ark.Reference.Core.WebInterface/Program.cs @@ -34,7 +34,9 @@ public static IHostBuilder GetHostBuilder(string[] args) public static IHostBuilder Config(this IHostBuilder builder, string[] args) { return builder - .ConfigureNLog("Ark.Reference.Core.WebInterface") + .ConfigureNLog("Ark.Reference.Core.WebInterface" + // , configure: c => c.WithDatabaseRule("*", NLog.LogLevel.Info) // always log INFO to Database Target if present + ) .ConfigureWebHostDefaults(webBuilder => { webBuilder diff --git a/Ark.Tools.NLog.Configuration/NLogConfigurer.Configuration.cs b/Ark.Tools.NLog.Configuration/NLogConfigurer.Configuration.cs index d4c83cf4..5f016d81 100644 --- a/Ark.Tools.NLog.Configuration/NLogConfigurer.Configuration.cs +++ b/Ark.Tools.NLog.Configuration/NLogConfigurer.Configuration.cs @@ -70,7 +70,7 @@ public static Configurer WithDefaultTargetsAndRulesFromConfiguration(this Config return @this; } - public static IHostBuilder ConfigureNLog(this IHostBuilder builder, string? appName = null, string? mailFrom = null) + public static IHostBuilder ConfigureNLog(this IHostBuilder builder, string? appName = null, string? mailFrom = null, Action? configure = null) { appName ??= Assembly.GetEntryAssembly()?.GetName().Name ?? AppDomain.CurrentDomain.FriendlyName ?? "Unknown"; @@ -82,14 +82,17 @@ public static IHostBuilder ConfigureNLog(this IHostBuilder builder, string? appN return builder.ConfigureLogging((ctx, logging) => { - NLogConfigurer.For(appName) - .WithDefaultTargetsAndRulesFromConfiguration(ctx.Configuration, appName, mailFrom, async: !ctx.HostingEnvironment.IsEnvironment("SpecFlow")) - .Apply(); + var c = NLogConfigurer.For(appName) + .WithDefaultTargetsAndRulesFromConfiguration(ctx.Configuration, appName, mailFrom, async: !ctx.HostingEnvironment.IsEnvironment("SpecFlow")) + ; + + configure ?.Invoke(c); + + c.Apply(); logging.ClearProviders(); logging.AddNLog(); }); - } } }