我有这样的NLog布局:
${date} ${uppercase:${level}} ${when:when=(level)>=LogLevel.Debug:callsite:includeSourcePath=false}: ${message}
when
大部分都有效。我的日志条目不显示调用站点,因为它们处于Info
级别,但单词callsite
在日志条目中以文字形式输出:
2016/10/06 09:15:15.814 INFO callsite :应用程序已启动 以10秒的间隔监控“MSSQLSERVER”服务。
如果我尝试这样的布局:
${date} ${uppercase:${level}} ${when:when=(level)>=LogLevel.Debug:${callsite:includeSourcePath=false}}: ${message}
然后when
根本不起作用,条目包含正确的outpout呼叫网站信息:
2016/10/06 09:17:01.718 INFO SqlServer.Monitor.Application.MonitorApplication.Start:应用程序 已开始以10秒的间隔监控“MSSQLSERVER”服务。
答案 0 :(得分:1)
根据规格,这应该有效:
${date} ${uppercase:${level}} ${when:when=(level>=LogLevel.Debug):inner=${callsite:includeSourcePath=false}}: ${message}
更新,您错过了:inner
。这是必需的,因为{when}
的第一个参数是when=
。
另一个正在运作的例子:
${when:when=level<=LogLevel.Info:inner=Good:else=Bad}
中的测试