Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions CHANGELOG.MD
Original file line number Diff line number Diff line change
Expand Up @@ -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**
Expand Down
2 changes: 1 addition & 1 deletion build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
<HintPath>..\..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\..\..\..\packages\NLog.5.4.0\lib\net46\NLog.dll</HintPath>
<HintPath>..\..\..\..\packages\NLog.5.5.0\lib\net46\NLog.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.12" targetFramework="net461" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net461" />
<package id="Modernizr" version="2.8.3" targetFramework="net461" />
<package id="NLog" version="5.4.0" targetFramework="net461" />
<package id="NLog" version="5.5.0" targetFramework="net461" />
<package id="WebGrease" version="1.6.0" targetFramework="net461" />
</packages>
95 changes: 95 additions & 0 deletions src/NLog.Web.AspNetCore/AspNetExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,52 @@ public static ILoggingBuilder AddNLogWeb(this ILoggingBuilder builder, LogFactor
return builder;
}

/// <summary>
/// Enable NLog as logging provider for Microsoft Extension Logging
/// </summary>
/// <param name="collection"></param>
/// <returns>IServiceCollection for chaining</returns>
public static IServiceCollection AddNLogWeb(this IServiceCollection collection)
{
return AddNLogWeb(collection, NLogAspNetCoreOptions.Default);
}

/// <summary>
/// Enable NLog as logging provider for Microsoft Extension Logging
/// </summary>
/// <param name="collection"></param>
/// <param name="options">NLog Logging Provider options</param>
/// <returns>IServiceCollection for chaining</returns>
public static IServiceCollection AddNLogWeb(this IServiceCollection collection, NLogAspNetCoreOptions options)
{
Guard.ThrowIfNull(collection);
AddNLogLoggerProvider(collection, null, null, options, CreateNLogLoggerProvider);
return collection;
}

/// <summary>
/// Enable NLog as logging provider for Microsoft Extension Logging
/// </summary>
/// <param name="collection"></param>
/// <param name="options">NLog Logging Provider options</param>
/// <param name="factoryBuilder">Initialize NLog LogFactory with NLog LoggingConfiguration.</param>
/// <returns>IServiceCollection for chaining</returns>
public static IServiceCollection AddNLogWeb(this IServiceCollection collection, NLogAspNetCoreOptions options, Func<IServiceProvider, LogFactory> 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;
}

/// <summary>
/// Enable NLog as logging provider for Microsoft Extension Logging.
/// </summary>
Expand Down Expand Up @@ -335,6 +381,55 @@ public static IHostBuilder UseNLog(this IHostBuilder builder, NLogAspNetCoreOpti
return builder;
}

#if NET8_0_OR_GREATER
/// <summary>
/// Enable NLog as logging provider for Microsoft Extension Logging
/// </summary>
/// <param name="builder"></param>
/// <returns>IHostApplicationBuilder for chaining</returns>
public static IHostApplicationBuilder UseNLog(this IHostApplicationBuilder builder)
{
Guard.ThrowIfNull(builder);
return builder.UseNLog(NLogAspNetCoreOptions.Default);
}

/// <summary>
/// Enable NLog as logging provider for Microsoft Extension Logging
/// </summary>
/// <param name="builder"></param>
/// <param name="options">Options for registration of the NLog LoggingProvider and enabling features.</param>
/// <returns>IHostApplicationBuilder for chaining</returns>
public static IHostApplicationBuilder UseNLog(this IHostApplicationBuilder builder, NLogAspNetCoreOptions options)
{
Guard.ThrowIfNull(builder);
AddNLogLoggerProvider(builder.Services, builder.Configuration, builder.Environment, options, CreateNLogLoggerProvider);
return builder;
}

/// <summary>
/// Enable NLog as logging provider for Microsoft Extension Logging
/// </summary>
/// <param name="builder"></param>
/// <param name="options">NLogProviderOptions object to configure NLog behavior</param>
/// <param name="factoryBuilder">Initialize NLog LogFactory with NLog LoggingConfiguration.</param>
/// <returns>IHostApplicationBuilder for chaining</returns>
public static IHostApplicationBuilder UseNLog(this IHostApplicationBuilder builder, NLogAspNetCoreOptions options, Func<IServiceProvider, LogFactory> 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<IServiceProvider, IConfiguration, IHostEnvironment, NLogAspNetCoreOptions, NLogLoggerProvider> factory)
{
options = options ?? NLogAspNetCoreOptions.Default;
Expand Down
10 changes: 6 additions & 4 deletions src/NLog.Web.AspNetCore/NLog.Web.AspNetCore.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@ Integrates NLog as provider for Microsoft.Extensions.Logging, and provides NLog
<PackageReleaseNotes>
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

Expand Down Expand Up @@ -72,7 +74,7 @@ List of available Layout Renderers: https://nlog-project.org/config/?tab=layout-
<AssemblyTitle>$(Title)</AssemblyTitle>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NLog.Extensions.Logging" Version="5.4.0" />
<PackageReference Include="NLog.Extensions.Logging" Version="5.5.0" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All" />
</ItemGroup>

Expand Down
2 changes: 1 addition & 1 deletion src/NLog.Web/NLog.Web.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ List of available Layout Renderers: https://nlog-project.org/config/?tab=layout-
<DownloadFile SourceUrl="https://nlog-project.org/N.png" DestinationFolder="$(MSBuildThisFileDirectory)" />
</Target>
<ItemGroup>
<PackageReference Include="NLog" Version="5.4.0" />
<PackageReference Include="NLog" Version="5.5.0" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
Expand Down