Nlog Callsite 布局渲染捕获完整的堆栈跟踪

问题描述 投票:0回答:1

我使用的是 nlog 4.5v,当使用 Callsite 布局渲染时,是否有参数设置有助于不捕获完整的堆栈跟踪?

我只需要最顶层堆栈的命名空间、类和方法名称。

从 4.7 版开始,文档提到 capturestacktrace=false 可以工作,但事实并非如此。设置为 false 时它不会打印任何内容。

找不到任何参数

nlog
1个回答
0
投票

NLog v4.7.1 添加了对使用 ${callsite} 时不自动捕获完整 StackTrace 的支持。通过引入选项

captureStackTrace=false
。但随后您需要通过显式调用 LogEventInfo.SetCallerInfo

来提供调用站点信息

NLog v5 引入了优化的流畅 LogEvent 构建器,它使用调用者成员属性来捕获调用站点,而无需使用完整的 StackTrace:

_logger.ForInfoEvent()
       .Message("This is a fluent message {0}.", "test")
       .Property("PropertyName", "PropertyValue")
       .Log();
© www.soinside.com 2019 - 2024. All rights reserved.