只提取异常对象的message属性的Nlog布局渲染器是什么?

时间:2016-05-19 17:25:47

标签: c# nlog

我开始使用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}" />

1 个答案:

答案 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吗?