NLog Внутренний журнал исключений
Я пытаюсь регистрировать внутренние сообщения об исключениях с помощью 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>
Я получаю то же сообщение See the inner exception for details
для обоих Exception Message
а также InnerException Message
строки файла NLog.config.
2 ответа
Это сработало для меня:
<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>
Другая возможность - добавить новую строку между внутренними исключениями - использовать перенос строки. 

в XML, так как innerExceptionSeparator
не анализируется каким-то особым образом и загружается так, как написано. Так innerExceptionSeparator=${newline}
не будет работать.
layout="${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:innerExceptionSeparator=
	:format=shortType,message}}
это приведет к тому, что внутренний текст исключения будет начинаться с новой строки и с отступом на символ табуляции
Однако это работает, только если ILogger.Error(Exception, string)
метод используется.ILogger.Error(Exception)
игнорирует этот макет