我想記錄請求持續時間。為此,我有一個中間件,并將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();
雖然早點注冊比較好。
請注意,這種情況下似乎并不真正需要自定義布局渲染器。
- 1 回答
- 0 關注
- 85 瀏覽
添加回答
舉報
0/150
提交
取消