53 votes

Comment obtenir la trace de pile lors de la journalisation des exceptions avec NLog?

Lorsque j'utilise la présentation par défaut avec NLog, cela n'imprime que le nom de l'exception. On m'a dit que la disposition log4jxmlevent n'imprimait rien à l'exception de l'exception. Quelle mise en page va m'aider?

Exemple de code:

 try
{
    throw new SystemException();
}
catch (Exception ex)
{
    logger.Error("oi", ex);
}
 

Sortie de mise en page par défaut:

 2011-01-14 09:14:48.0343|ERROR|ConsoleApplication.Program|oi
 

sortie log4jxmlevent:

 <log4j:event logger="ConsoleApplication.Program"
           level="ERROR"
           timestamp="1295003776872"
           thread="9">
<log4j:message>oi</log4j:message>
<log4j:NDC />
<log4j:locationInfo class="ConsoleApplication.Program"
                    method="Void Main(System.String[])"
                    file="C:\Users\User\Documents\Visual Studio 2010\Projects\ConsoleApplication\ConsoleApplication\Program.cs"
                    line="21" />
<nlog:eventSequenceNumber>3</nlog:eventSequenceNumber>
<nlog:locationInfo assembly="ConsoleApplication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<log4j:properties>
  <log4j:data name="log4japp"
              value="true" />
  <log4j:data name="log4jmachinename"
              value="MACHINE" />
</log4j:properties>
 

93voto

Jader Dias Points 23461

Je devais utiliser celle des méthodes Logger. + niveau + Exception :

 logger.ErrorException("ex", ex);
 

et une mise en page personnalisée

 layout="${exception:format=ToString,StackTrace}${newline}"
 

0voto

Vous pouvez également ajouter \ n CR (retour chariot) à votre message. Like _log.Fatal (String.Format ("Message: {0} \ n StackTrace: {1}", ex.Message, ex.StackTrace));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X