为了账号安全,请及时绑定邮箱和手机立即绑定

如何记录自定义变量

如何记录自定义变量

C#
POPMUISE 2023-08-20 09:26:11
我想记录请求持续时间。为此,我有一个中间件,并将OnActionExecuted经过的时间分配给变量,并尝试通过 lambda 函数使用自定义布局渲染来注册它requestDuration = _stopWatch.ElapsedMilliseconds; LayoutRenderer.Register("requestDuration", logEvent => requestDuration);在我的 nlog.config 上,我有以下内容<column name ="RequestDuration" layout="${requestDuration}" quoting="Nothing"/>NLog 抱怨说这将被忽略:Error Error parsing layout requestDuration will be ignored. Exception: System.ArgumentException: LayoutRenderer cannot be found: 'requestDuration'    at NLog.Config.Factory`2.CreateInstance(String itemName)    at NLog.Layouts.LayoutParser.GetLayoutRenderer(ConfigurationItemFactory configurationItemFactory, String name)我是否在错误的位置注册了layoutRenderer?请注意,我试图有一列是请求持续时间,而不是简单地在日志消息上写下该时间
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

如果在注册布局渲染器时收到“找不到 LayoutRenderer”,则 NLog 在布局注册之前解析配置。

您可以在注册后重新初始化:

LogManager.Configuration = LogManager.Configuration.Reload();

虽然早点注册比较好。

请注意,这种情况下似乎并不真正需要自定义布局渲染器。

查看完整回答
反对 回复 2023-08-20
  • 1 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信