生产线上的行号在NLog日志中消失

我通过使用$ {callsite}参数配置了NLog布局以获得方法名称和行号,并且它在本地运行良好,如下所示。

Application_Start(Global.asax.cs:33) 

但它正在改变为Application_Start而没有生产中的行号。 我想这是因为它不能访问没有.pdb文件的行号,但我使用的是.NET 4.5,它可以通过没有.pdb文件的调用者属性访问行号。 我知道NLog没有为.NET 4.5优化自己。

有没有办法使用NLog为.NET 4.5生成行号?

NLog不使用.NET 4.5中的新属性

它使用StackTrace类。

这从源代码中可以看出。

因此,您需要.pdb文件作为行号。