diff --git a/CHANGELOG.MD b/CHANGELOG.MD
index 925e84a7..1b075546 100644
--- a/CHANGELOG.MD
+++ b/CHANGELOG.MD
@@ -4,6 +4,16 @@ See also [releases](https://github.com/NLog/NLog.Web/releases) and [milestones](
Date format: (year/month/day)
+### Version 5.5 (2025/05/29)
+
+- **NLog.Web.AspNetCore**
+ - [#1078](https://github.com/NLog/NLog.Web/pull/1080) Added UseNLog extension method for IHostApplicationBuilder (#1080) (@snakefoot)
+ - [#1078](https://github.com/NLog/NLog.Web/pull/1080) Added AddNLogWeb extension method for IServiceCollection (#1080) (@snakefoot)
+ - [#1078](https://github.com/NLog/NLog.Web/pull/1080) Updated dependency NLog.Extensions.Logging v5.5 (#1080) (@snakefoot)
+
+- **NLog.Web**
+ - [#1078](https://github.com/NLog/NLog.Web/pull/1080) Updated dependency NLog v5.5 (#1080) (@snakefoot)
+
### Version 5.4 (2025/02/02)
- **NLog.Web.AspNetCore**
diff --git a/build.ps1 b/build.ps1
index b7573a23..00ac9c90 100644
--- a/build.ps1
+++ b/build.ps1
@@ -2,7 +2,7 @@
# creates NuGet package at \artifacts
dotnet --version
-$versionPrefix = "5.4.0" # Also update version for minor versions in appveyor.yml
+$versionPrefix = "5.5.0" # Also update version for minor versions in appveyor.yml
$versionSuffix = ""
$versionFile = $versionPrefix + "." + ${env:APPVEYOR_BUILD_NUMBER}
if ($env:APPVEYOR_PULL_REQUEST_NUMBER) {
diff --git a/examples/ASP.NET 4.6.1/Visual Studio 2017/ASP.NET 4.6.1 - VS2017/ASP.NET 4.6.1 - VS2017.csproj b/examples/ASP.NET 4.6.1/Visual Studio 2017/ASP.NET 4.6.1 - VS2017/ASP.NET 4.6.1 - VS2017.csproj
index 5677b3cd..9a6f5be7 100644
--- a/examples/ASP.NET 4.6.1/Visual Studio 2017/ASP.NET 4.6.1 - VS2017/ASP.NET 4.6.1 - VS2017.csproj
+++ b/examples/ASP.NET 4.6.1/Visual Studio 2017/ASP.NET 4.6.1 - VS2017/ASP.NET 4.6.1 - VS2017.csproj
@@ -49,7 +49,7 @@
..\..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll
- ..\..\..\..\packages\NLog.5.4.0\lib\net46\NLog.dll
+ ..\..\..\..\packages\NLog.5.5.0\lib\net46\NLog.dll
diff --git a/examples/ASP.NET 4.6.1/Visual Studio 2017/ASP.NET 4.6.1 - VS2017/packages.config b/examples/ASP.NET 4.6.1/Visual Studio 2017/ASP.NET 4.6.1 - VS2017/packages.config
index 6b862a3e..3a901a9b 100644
--- a/examples/ASP.NET 4.6.1/Visual Studio 2017/ASP.NET 4.6.1 - VS2017/packages.config
+++ b/examples/ASP.NET 4.6.1/Visual Studio 2017/ASP.NET 4.6.1 - VS2017/packages.config
@@ -11,6 +11,6 @@
-
+
\ No newline at end of file
diff --git a/src/NLog.Web.AspNetCore/AspNetExtensions.cs b/src/NLog.Web.AspNetCore/AspNetExtensions.cs
index c458676e..339b5dfa 100644
--- a/src/NLog.Web.AspNetCore/AspNetExtensions.cs
+++ b/src/NLog.Web.AspNetCore/AspNetExtensions.cs
@@ -289,6 +289,52 @@ public static ILoggingBuilder AddNLogWeb(this ILoggingBuilder builder, LogFactor
return builder;
}
+ ///
+ /// Enable NLog as logging provider for Microsoft Extension Logging
+ ///
+ ///
+ /// IServiceCollection for chaining
+ public static IServiceCollection AddNLogWeb(this IServiceCollection collection)
+ {
+ return AddNLogWeb(collection, NLogAspNetCoreOptions.Default);
+ }
+
+ ///
+ /// Enable NLog as logging provider for Microsoft Extension Logging
+ ///
+ ///
+ /// NLog Logging Provider options
+ /// IServiceCollection for chaining
+ public static IServiceCollection AddNLogWeb(this IServiceCollection collection, NLogAspNetCoreOptions options)
+ {
+ Guard.ThrowIfNull(collection);
+ AddNLogLoggerProvider(collection, null, null, options, CreateNLogLoggerProvider);
+ return collection;
+ }
+
+ ///
+ /// Enable NLog as logging provider for Microsoft Extension Logging
+ ///
+ ///
+ /// NLog Logging Provider options
+ /// Initialize NLog LogFactory with NLog LoggingConfiguration.
+ /// IServiceCollection for chaining
+ public static IServiceCollection AddNLogWeb(this IServiceCollection collection, NLogAspNetCoreOptions options, Func factoryBuilder)
+ {
+ Guard.ThrowIfNull(collection);
+ Guard.ThrowIfNull(factoryBuilder);
+ AddNLogLoggerProvider(collection, null, null, options, (serviceProvider, config, env, opt) =>
+ {
+ config = SetupNLogConfigSettings(serviceProvider, config, LogManager.LogFactory);
+
+ // Delay initialization of targets until we have loaded config-settings
+ var logFactory = factoryBuilder(serviceProvider);
+ var provider = CreateNLogLoggerProvider(serviceProvider, config, env, options, logFactory);
+ return provider;
+ });
+ return collection;
+ }
+
///
/// Enable NLog as logging provider for Microsoft Extension Logging.
///
@@ -335,6 +381,55 @@ public static IHostBuilder UseNLog(this IHostBuilder builder, NLogAspNetCoreOpti
return builder;
}
+#if NET8_0_OR_GREATER
+ ///
+ /// Enable NLog as logging provider for Microsoft Extension Logging
+ ///
+ ///
+ /// IHostApplicationBuilder for chaining
+ public static IHostApplicationBuilder UseNLog(this IHostApplicationBuilder builder)
+ {
+ Guard.ThrowIfNull(builder);
+ return builder.UseNLog(NLogAspNetCoreOptions.Default);
+ }
+
+ ///
+ /// Enable NLog as logging provider for Microsoft Extension Logging
+ ///
+ ///
+ /// Options for registration of the NLog LoggingProvider and enabling features.
+ /// IHostApplicationBuilder for chaining
+ public static IHostApplicationBuilder UseNLog(this IHostApplicationBuilder builder, NLogAspNetCoreOptions options)
+ {
+ Guard.ThrowIfNull(builder);
+ AddNLogLoggerProvider(builder.Services, builder.Configuration, builder.Environment, options, CreateNLogLoggerProvider);
+ return builder;
+ }
+
+ ///
+ /// Enable NLog as logging provider for Microsoft Extension Logging
+ ///
+ ///
+ /// NLogProviderOptions object to configure NLog behavior
+ /// Initialize NLog LogFactory with NLog LoggingConfiguration.
+ /// IHostApplicationBuilder for chaining
+ public static IHostApplicationBuilder UseNLog(this IHostApplicationBuilder builder, NLogAspNetCoreOptions options, Func factoryBuilder)
+ {
+ Guard.ThrowIfNull(builder);
+ Guard.ThrowIfNull(factoryBuilder);
+
+ AddNLogLoggerProvider(builder.Services, builder.Configuration, builder.Environment, options, (serviceProvider, config, env, options) =>
+ {
+ config = SetupNLogConfigSettings(serviceProvider, config, LogManager.LogFactory);
+ // Delay initialization of targets until we have loaded config-settings
+ var logFactory = factoryBuilder(serviceProvider);
+ var provider = CreateNLogLoggerProvider(serviceProvider, config, env, options, logFactory);
+ return provider;
+ });
+ return builder;
+ }
+#endif
+
private static void AddNLogLoggerProvider(IServiceCollection services, IConfiguration hostConfiguration, IHostEnvironment hostEnvironment, NLogAspNetCoreOptions options, Func factory)
{
options = options ?? NLogAspNetCoreOptions.Default;
diff --git a/src/NLog.Web.AspNetCore/NLog.Web.AspNetCore.csproj b/src/NLog.Web.AspNetCore/NLog.Web.AspNetCore.csproj
index f968e541..5c112f7e 100644
--- a/src/NLog.Web.AspNetCore/NLog.Web.AspNetCore.csproj
+++ b/src/NLog.Web.AspNetCore/NLog.Web.AspNetCore.csproj
@@ -15,9 +15,11 @@ Integrates NLog as provider for Microsoft.Extensions.Logging, and provides NLog
ChangeLog:
- - AspNetUserClaimLayoutRenderer - Extended with Azure Claims ObjectId + TenantId + AppId (#1069) (@snakefoot)
- - Micro optimization by using is null (#1070) (@snakefoot)
- - Updated dependency NLog.Extensions.Logging v5.4 (#1072) (@snakefoot)List of major changes in NLog 5.0: https://nlog-project.org/2022/05/16/nlog-5-0-finally-ready.html
+- Added UseNLog extension method for IHostApplicationBuilder (#1080) (@snakefoot)
+- Added AddNLogWeb extension method for IServiceCollection (#1080) (@snakefoot)
+- Updated dependency NLog.Extensions.Logging v5.5 (#1080) (@snakefoot)
+
+List of major changes in NLog 5.0: https://nlog-project.org/2022/05/16/nlog-5-0-finally-ready.html
Full changelog: https://github.com/NLog/NLog.Web/releases
@@ -72,7 +74,7 @@ List of available Layout Renderers: https://nlog-project.org/config/?tab=layout-
$(Title)
-
+
diff --git a/src/NLog.Web/NLog.Web.csproj b/src/NLog.Web/NLog.Web.csproj
index 700a9312..6035e45a 100644
--- a/src/NLog.Web/NLog.Web.csproj
+++ b/src/NLog.Web/NLog.Web.csproj
@@ -69,7 +69,7 @@ List of available Layout Renderers: https://nlog-project.org/config/?tab=layout-
-
+