Skip to content

Commit 08b4eeb

Browse files
authored
NLogProviderOptions with support for RegisterServiceProvider (#714)
1 parent f0b9110 commit 08b4eeb

3 files changed

Lines changed: 14 additions & 7 deletions

File tree

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
# NLog.Web (ASP.NET & ASP.NET Core)
44

5-
[![NuGet Release](https://img.shields.io/nuget/v/NLog.Extensions.Logging.svg?label=NLog.Web.AspNetCore)](https://www.nuget.org/packages/NLog.Web.AspNetCore)
6-
[![NuGet Pre Release](https://img.shields.io/nuget/vpre/NLog.Extensions.Logging.svg?label=NLog.Web.AspNetCore)](https://www.nuget.org/packages/NLog.Web.AspNetCore)
5+
[![NuGet Release](https://img.shields.io/nuget/v/NLog.Web.AspNetCore.svg?label=NLog.Web.AspNetCore)](https://www.nuget.org/packages/NLog.Web.AspNetCore)
6+
[![NuGet Pre Release](https://img.shields.io/nuget/vpre/NLog.Web.AspNetCore.svg?label=NLog.Web.AspNetCore)](https://www.nuget.org/packages/NLog.Web.AspNetCore)
77

8-
[![NuGet Release](https://img.shields.io/nuget/v/NLog.Extensions.Hosting.svg?label=NLog.Web)](https://www.nuget.org/packages/NLog.Web)
9-
[![NuGet Pre Release](https://img.shields.io/nuget/vpre/NLog.Extensions.Hosting.svg?label=NLog.Web)](https://www.nuget.org/packages/NLog.Web)
8+
[![NuGet Release](https://img.shields.io/nuget/v/NLog.Web.svg?label=NLog.Web)](https://www.nuget.org/packages/NLog.Web)
9+
[![NuGet Pre Release](https://img.shields.io/nuget/vpre/NLog.Web.svg?label=NLog.Web)](https://www.nuget.org/packages/NLog.Web)
1010

1111
[![Build status](https://img.shields.io/appveyor/ci/nlog/nlog-web/master.svg)](https://ci.appveyor.com/project/nlog/nlog-web/branch/master)
1212
[![](https://sonarcloud.io/api/project_badges/measure?project=nlog.web&branch=master&metric=ncloc)](https://sonarcloud.io/dashboard/?id=nlog.web&branch=master)

src/NLog.Web.AspNetCore/AspNetExtensions.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,15 @@ private static NLogLoggerProvider CreateNLogLoggerProvider(IServiceProvider serv
339339

340340
private static NLogLoggerProvider CreateNLogLoggerProvider(IServiceProvider serviceProvider, IConfiguration configuration, NLogAspNetCoreOptions options, NLog.LogFactory logFactory)
341341
{
342-
configuration = SetupConfiguration(serviceProvider, configuration);
343342
NLogLoggerProvider provider = new NLogLoggerProvider(options ?? NLogAspNetCoreOptions.Default, logFactory ?? LogManager.LogFactory);
343+
344+
configuration = SetupConfiguration(serviceProvider, configuration);
345+
346+
if (serviceProvider != null && provider.Options.RegisterServiceProvider)
347+
{
348+
provider.LogFactory.ServiceRepository.RegisterService(typeof(IServiceProvider), serviceProvider);
349+
}
350+
344351
if (configuration != null)
345352
{
346353
provider.Configure(configuration.GetSection("Logging:NLog"));

tests/Shared/LayoutRenderers/W3CLoggerLayoutTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public void W3CLoggerLayoutNoContextTest()
5454
[Fact]
5555
public void W3CLoggerLayoutWithContextTest()
5656
{
57-
var httpContextMock = SetupHttpAccessorWithHttpContext("www.google.com:80", "http", "/Test.asp", "?t=1");
57+
var httpContextMock = SetupHttpAccessorWithHttpContext("nlog-project.org:80", "http", "/Test.asp", "?t=1");
5858

5959
var logFactory = new NLog.LogFactory().Setup().SetupExtensions(ext => ext.RegisterAssembly(typeof(NLog.Web.Layouts.W3CExtendedLogLayout).Assembly)).LoadConfiguration(builder =>
6060
{
@@ -69,7 +69,7 @@ public void W3CLoggerLayoutWithContextTest()
6969
var logEvent = new LogEventInfo(LogLevel.Info, null, "RequestLogging");
7070
logger.Log(logEvent);
7171
string expectedFieldHeaders = "c-ip cs-username s-computername cs-method cs-uri-stem cs-uri-query sc-status sc-bytes cs-bytes time-taken cs-host cs(User-Agent)";
72-
string expectedFieldValues = $"- - {Environment.MachineName} - /Test.asp ?t=1 200 7 42 - www.google.com -";
72+
string expectedFieldValues = $"- - {Environment.MachineName} - /Test.asp ?t=1 200 7 42 - nlog-project.org -";
7373
string expectedHeader = $@"#Software: Microsoft Internet Information Server{System.Environment.NewLine}#Version: 1.0{System.Environment.NewLine}#Start-Date: {logEvent.TimeStamp.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)}{System.Environment.NewLine}#Fields: date time {expectedFieldHeaders}";
7474
string expectedBody = $@"{logEvent.TimeStamp.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)} {expectedFieldValues}";
7575

0 commit comments

Comments
 (0)