NLog显示“ lambda_method”而不是记录器名称

时间:2019-09-12 12:34:40

标签: c# asp.net-core logging nlog

这是我正在使用的布局渲染器字符串:

layout="${longdate}|${uppercase:${level}}|${logger:shortName=True}|${aspnet-Request-UserAgent}|${message} ${exception:format=toString,Data:maxInnerExceptionLevel=10}" 

相关部分为:${logger:shortName=True}

当我在IIS中构建并运行项目的调试版本时,这似乎工作正常:

2019-09-10 08:50:20.8863|INFO|AuthenticationController|39 Win8-64 8.4.0.18|username='testuser' /api/v1/authenticate 

但是当我运行生产版本时,我得到的却是以下内容:

2019-09-10 08:50:20.8863|INFO|lambda_method|39 Win8-64 8.4.0.18|username='testuser' /api/v1/authenticate 

我没有得到实际的短记录器名称(AuthenticationController),而是得到了lambda_method。

我通过以下方式获取记录器:

private readonly Logger _logger = LogManager.GetCurrentClassLogger();

这在ASP.NET Core 2.2项目中,具有NLog.Web.AspNetCore版本4.8.4。我在做什么错了?

1 个答案:

答案 0 :(得分:2)

尝试更新到NLog版本。 4.6.8:

https://www.nuget.org/packages/NLog

遇到“ lambda_method”时,它将尝试扫描一个更好的记录器名称。