我开始使用Nlog并遇到问题,我想为最终用户提供简单数据,为开发人员提供详细数据。
简单数据只是Message
对象之外的Exception
属性,但是当我${message}
时它与${exception}
的输出相同。如果在异常期间检查此属性的值,则通常很短并且没有所有基础细节。
如果没有直接发送exception.Message
作为消息参数,是否可以“过滤”到此数据?想象它是建造它。
编辑:
catch (Exception ex)
{
DBLogger.Error(ex, ex.Message);
return new List<ApprovalDT>();
}
<parameter name="@machineName" layout="${machinename}" />
<parameter name="@logged" layout="${date}" />
<parameter name="@level" layout="${level}" />
<parameter name="@message" layout="${message}" />
<parameter name="@logger" layout="${logger}" />
<parameter name="@properties" layout="${all-event-properties:separator=|}" />
<parameter name="@callSite" layout="${callsite}" />
<parameter name="@exception" layout="${stacktrace}" />
答案 0 :(得分:0)
根据NLog文档,${exception}
does return only the exception's Message
property by default。
从链接引用:
渲染选项
[...]
- 格式 - 输出格式。必须是以逗号分隔的异常属性列表:Message,Type,ShortType,ToString,Method, StackTrace,数据。此参数值不区分大小写。默认: 消息
文档也说${message}
is the actual log message, not the exception's Message property。
您没有显示您的代码,因此我不知道您如何调用记录器
但是我认为${exception}
和${message}
输出相同,因为你没有传递实际的日志消息,所以NLog只是用异常的消息填充它?
但是我现在无法在源代码中找到它。你能举例说明如何调用NLog吗?