NLog LogException, кажется, игнорирует исключение - PullRequest
33 голосов
/ 06 апреля 2011

LogException или любая из производных функций, таких как ErrorException и т. Д., Кажется, полностью игнорирует параметр исключения, переданный в.

Мне не хватает атрибута формата в моем файле nlog.config? Я использую шаблон из шаблона, который Nlog устанавливает в VS.

Я ожидаю, что информация из объекта исключения И внутренних исключений будет добавлена ​​в файл журнала. И все же единственной информацией, добавляемой в файл журнала, является строковый параметр, передаваемый функции.

Оказывается, что ErrorException() на самом деле менее полезен, чем Error()

Как я могу получить более подробную отчетность. В частности, полный рекурсивный дамп свойства Message всех внутренних Exceptions?

Ответы [ 2 ]

42 голосов
/ 06 апреля 2011

Добавьте или замените тег ${exception} в конфигурации макета на ${exception:format=tostring}

 <targets>
    <target name="errorLogFile" xsi:type="File" fileName="errors.txt" 
            layout="${message} ${exception:format=tostring}"/>
</targets>
29 голосов
/ 03 ноября 2011

Опираясь на ответ @ Ники, это даст вам довольно близкое представление о том, что будет делать log4net

fileName="${basedir}/logs/${shortdate}.log" layout="${longdate}|${level:uppercase=true}|${logger}|${message}${onexception:inner=${newline}${exception:format=tostring}}"
...