在Startup我的项目类中,我有以下Configure方法:
private void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
loggerFactory.AddNLog();
...
}
Run Code Online (Sandbox Code Playgroud)
这在 .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();
...
}
Run Code Online (Sandbox Code Playgroud)
或者
private void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostBuilder hostBuilder)
{
...
hostBuilder.UseNLog();
...
}
Run Code Online (Sandbox Code Playgroud)
但在这两种情况下,我都有一个 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 配置的可行来源,并且在Microsoft 官方指南中也没有关于登录的内容。有谁知道如何解决这个问题?
在 ASP.NET Core 2+ 中,引导 ASP.NET Core 站点的模式发生了变化。NLog 对此进行了调整。使用最新版本的NLog.Extensions.Logging.ConfigureExtenstions,旧方法已过时。
例如,ASP.NET Core 现在使用CreateHostBuilder.
我建议遵循:
\n\n| 归档时间: |
|
| 查看次数: |
2857 次 |
| 最近记录: |