NLog内部异常登录

Lui*_*jon 5 logging nlog exception-logging

我正在尝试使用NLog记录内部异常消息.这是我的NLog.config文件的一部分:

    <target name="errors" xsi:type="File" layout="${longdate}${newline}
        - Exception Message: ${exception:format=Message}${newline}
        - InnerException Message: ${exception:innerExceptionSeparator=TEXT}${newline}"
        fileName="\Logs\errors-${shortdate}.log"
       concurrentWrites="true" />
    </targets>
Run Code Online (Sandbox Code Playgroud)

我正在为NLog.config文件和See the inner exception for details两行获取相同的消息.Exception MessageInnerException Message

Lui*_*jon 9

这对我有用:

  <target name="errors" xsi:type="File" layout="
            ${message}
            ${onexception:EXCEPTION OCCURRED\:
            ${exception:format=type,message,method:maxInnerExceptionLevel=5:innerFormat=shortType,message,method}}"
            fileName="\Logs\errors-${shortdate}.log"
            concurrentWrites="true"
            />
  </targets>
Run Code Online (Sandbox Code Playgroud)


ole*_*ksa 7

&#xD;&#xA另一种可能性是在内部异常之间添加新行,即在 xml 中使用换行符,因为innerExceptionSeparator它不会以某种特殊方式进行解析,并且会在写入时加载。所以innerExceptionSeparator=${newline}不会起作用。

layout="${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:innerExceptionSeparator=&#xD;&#xA;&#x9;:format=shortType,message}} 
Run Code Online (Sandbox Code Playgroud)

这将导致内部异常文本从新行开始并按制表符缩进

ILogger.Error(Exception, string)然而,这仅在使用方法 时才有效。ILogger.Error(Exception)忽略这个布局