我正在通过变量
传递异常消息 LogManager.Configuration.Variables["Exception"] = exception.ToString();
nlog.config
<variable name="Exception" />
<column name="EXCEPTION MESSAGE" layout="${var: Exception}" />
在日志文件中,我创建了一个自定义nlog类,如上所述,我在其中通过变量传递了几个值。如果是第一次我遇到异常,那么它将在日志文件中每隔一行重复写入一次,尽管在同一会话的下一行中没有异常,直到我们获得第二个异常为止。然后第二个例外是在所有下一行中重写。
我该如何解决?有什么方法可以杀死以前的变量值?
答案 0 :(得分:2)
您不应在NLog-Config-Variables中存储异常(或其他上下文信息)。
相反,您应该这样做:
logger.Error(exception, "Something bad happened");
然后将您的配置修改为此:
<column name="EXCEPTION MESSAGE" layout="${exception:format=tostring}" />
<column name="EXCEPTION TYPE" layout="${exception:format=type}" />
<column name="EXCEPTION TARGETSITE" layout="${exception:format=Method}" />
另请参阅https://github.com/NLog/NLog/wiki/Context和https://github.com/NLog/NLog/wiki/Exception-layout-renderer