NLog Inner Exception Logging

Luis Teijon picture Luis Teijon · May 31, 2017 · Viewed 9k times · Source

I'm trying to log inner exception messages by using NLog. This is a piece of my NLog.config file:

    <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>

I'm getting the same message See the inner exception for detailsfor both Exception Message and InnerException Message lines of NLog.config file.

Answer

Luis Teijon picture Luis Teijon · May 31, 2017

This worked for me:

  <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>

Property descriptions :

  • ${exception:maxInnerExceptionLevel=N} - controls how many inner exceptions are logged. defaults to zero for backwards compatibility.
  • ${exception:innerExceptionSeparator=TEXT} - defines text that separates inner exceptions. Defaults to new line string (platform specific).
  • ${exception:innerFormat=FORMATSTRING} - defines the format of inner exceptions the same way that ${exception:format=FORMATSTRING} defines the format of the top-level exception. If this parameter is not specified, the same format is used for both top-level and inner exceptions.

Here is the official Nlog Documentation for logging inner exceptions