C# 什么是Nlog布局渲染器,用于仅提取异常对象的消息属性?
我开始使用Nlog,并遇到了一些问题,我希望为最终用户提供简单数据,为开发人员提供详细数据 简单数据只是C# 什么是Nlog布局渲染器,用于仅提取异常对象的消息属性?,c#,nlog,C#,Nlog,我开始使用Nlog,并遇到了一些问题,我希望为最终用户提供简单数据,为开发人员提供详细数据 简单数据只是异常对象的消息属性,但是当我执行${Message}时,它的输出与${Exception}相同。如果在异常期间检查此属性的值,则该属性通常很短,而且没有所有基础详细信息 是否有任何方法可以“过滤”到此数据,而不直接将异常消息作为消息参数发送?我想是它造的 编辑: catch(异常示例) { DBLogger.Error(例如,例如消息); 返回新列表(); } 根据NLog文件 引自链接: 渲
异常
对象的消息
属性,但是当我执行${Message}
时,它的输出与${Exception}
相同。如果在异常期间检查此属性的值,则该属性通常很短,而且没有所有基础详细信息
是否有任何方法可以“过滤”到此数据,而不直接将异常消息作为消息参数发送?我想是它造的
编辑:
catch(异常示例)
{
DBLogger.Error(例如,例如消息);
返回新列表();
}
根据NLog文件
引自链接:
渲染选项
[……]
- 格式-输出的格式。必须是以逗号分隔的异常属性列表:Message、Type、ShortType、ToString、Method、, StackTrace,数据。此参数值不区分大小写。违约: 信息
文件中也提到了这一点 您没有显示代码,因此我不知道您如何调用记录器。
但是我假设
${exception}
和${message}
输出相同的结果,因为您没有传递实际的日志消息,所以NLog只是用异常消息填充它?
不过,我现在在源代码中找不到它。你能举例说明如何调用NLog吗?我已经添加了数据传递的配置部分以及使用日志的捕获。注意:这个例子已经传递了ex.Message,因为这是我想要发送给${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}" />