【发布时间】:2025-12-08 20:05:01
【问题描述】:
当使用MailTarget 和自定义LayoutRenderer 时,我可以看到LogEventInfo.StackTrace 包含可以包含在呈现响应中的数据。
但是,将 MailTarget 替换为 WebServiceTarget 并使用相同的自定义 LayoutRenderer LogEventInfo.StackTrace 现在返回 null
两个目标都是“普通”的 NLog 实现,使用相同的 LayoutRenderer 从相同的代码调用
有没有其他人遇到过同样的问题? WebServiceTarget 是否有一些限制会阻止堆栈跟踪被捕获?
解决方案,基于以下 Rolf 的建议:
public sealed class MyLayoutRenderer : LayoutRenderer, IUsesStackTrace
{
public StackTraceUsage StackTraceUsage => StackTraceUsage.Max;
....
}
【问题讨论】: