将 AddNLog 从 .NET Core 2.2 迁移到 3.0
Migrate AddNLog from .NET Core 2.2 to 3.0
在我项目的 Startup
class 中,我有以下 Configure
方法:
private void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
loggerFactory.AddNLog();
...
}
这在 .NET Core 2.2 中工作正常,但升级到 3.0 后,我收到警告 Method 'NLog.Extensions.Logging.ConfigureExtenstions.AddNLog' is obsolete: instead use ILoggingBuilder.AddNLog() or IHostBuilder.UseNLog().
所以我尝试将方法更新为
private void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggingBuilder loggingBuilder)
{
...
loggingBuilder.AddNLog();
...
}
或
private void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostBuilder hostBuilder)
{
...
hostBuilder.UseNLog();
...
}
但在这两种情况下我都遇到了 DI 异常:Could not resolve a service of type {Microsoft.Extensions.Logging.ILoggingBuilder/Microsoft.Extensions.Hosting.IHostBuilder} for the parameter {loggingBuilder/hostBuilder} of method 'Configure' on type 'MyProject.Startup'
.
我找不到任何关于如何从 .NET Core 3.0 更改 NLog 配置的可行资源,也没有关于登录 official Microsoft guide 的内容。有谁知道如何解决这个问题?
使用 ASP.NET Core 2+,bootstrap 和 ASP.NET Core 站点的模式已更改。 NLog 对此进行了调整。使用最新版本 NLog.Extensions.Logging.ConfigureExtenstions
,旧方法已过时。
例如,ASP.NET Core 现在使用 CreateHostBuilder
。
我建议遵循:
在我项目的 Startup
class 中,我有以下 Configure
方法:
private void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
loggerFactory.AddNLog();
...
}
这在 .NET Core 2.2 中工作正常,但升级到 3.0 后,我收到警告 Method 'NLog.Extensions.Logging.ConfigureExtenstions.AddNLog' is obsolete: instead use ILoggingBuilder.AddNLog() or IHostBuilder.UseNLog().
所以我尝试将方法更新为
private void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggingBuilder loggingBuilder)
{
...
loggingBuilder.AddNLog();
...
}
或
private void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostBuilder hostBuilder)
{
...
hostBuilder.UseNLog();
...
}
但在这两种情况下我都遇到了 DI 异常:Could not resolve a service of type {Microsoft.Extensions.Logging.ILoggingBuilder/Microsoft.Extensions.Hosting.IHostBuilder} for the parameter {loggingBuilder/hostBuilder} of method 'Configure' on type 'MyProject.Startup'
.
我找不到任何关于如何从 .NET Core 3.0 更改 NLog 配置的可行资源,也没有关于登录 official Microsoft guide 的内容。有谁知道如何解决这个问题?
使用 ASP.NET Core 2+,bootstrap 和 ASP.NET Core 站点的模式已更改。 NLog 对此进行了调整。使用最新版本 NLog.Extensions.Logging.ConfigureExtenstions
,旧方法已过时。
例如,ASP.NET Core 现在使用 CreateHostBuilder
。
我建议遵循: