NLog logException parece ignorar la excepción


LogException o cualquiera de las funciones derivadas como ErrorException etc. parece ignorar totalmente el parámetro de excepción pasado.

¿Me falta un atributo de formato en mi archivo nlog.config? Estoy usando el boilerplate de la plantilla que instala Nlog en VS.

Esperaría que la información del objeto exception Y las excepciones internas se agregaran al archivo de registro. Sin embargo, la única información añadida al archivo de registro es el parámetro string pasado a la función.

Resulta que ErrorException() es en realidad menos útil que Error()

¿Cómo puedo obtener informes más detallados? ¿Particularmente un volcado recursivo completo de la propiedad Message de todo Exceptions interior?

Author: Nasreddine, 2011-04-06

2 answers

Agregue o reemplace la etiqueta ${exception} en la configuración de diseño a ${exception:format=tostring}

 <targets>
    <target name="errorLogFile" xsi:type="File" fileName="errors.txt" 
            layout="${message} ${exception:format=tostring}"/>
</targets>
 40
Author: Niki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-28 07:51:48

Basándose en la respuesta de @Niki, esto le dará bastante cerca de lo que log4net hará

fileName="${basedir}/logs/${shortdate}.log" layout="${longdate}|${level:uppercase=true}|${logger}|${message}${onexception:inner=${newline}${exception:format=tostring}}"
 28
Author: chrisortman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-11 01:04:09