我想記錄請(qǐng)求持續(xù)時(shí)間。為此,我有一個(gè)中間件,并將OnActionExecuted經(jīng)過的時(shí)間分配給變量,并嘗試通過 lambda 函數(shù)使用自定義布局渲染來注冊(cè)它requestDuration?=?_stopWatch.ElapsedMilliseconds;
LayoutRenderer.Register("requestDuration",?logEvent?=>?requestDuration);在我的 nlog.config 上,我有以下內(nèi)容<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)我是否在錯(cuò)誤的位置注冊(cè)了layoutRenderer?請(qǐng)注意,我試圖有一列是請(qǐng)求持續(xù)時(shí)間,而不是簡(jiǎn)單地在日志消息上寫下該時(shí)間
1 回答

縹緲止盈
TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果在注冊(cè)布局渲染器時(shí)收到“找不到 LayoutRenderer”,則 NLog 在布局注冊(cè)之前解析配置。
您可以在注冊(cè)后重新初始化:
LogManager.Configuration?=?LogManager.Configuration.Reload();
雖然早點(diǎn)注冊(cè)比較好。
請(qǐng)注意,這種情況下似乎并不真正需要自定義布局渲染器。
- 1 回答
- 0 關(guān)注
- 96 瀏覽
添加回答
舉報(bào)
0/150
提交
取消