2010-04-09 3 views
4

J'utilise Log4Net pour enregistrer une application d'entreprise multicouche.Comment ajouter un StackTrace à chaque appel de log dans log4net?

Je sais que lorsque j'enregistre une exception avec Log4Net, il expose automatiquement l'exception StackTrace, mais je veux enregistrer le StackTrace pour chaque appel de journal, même si ce ne sont pas des lancements d'exception.

Pourquoi dois-je cela? ... Je veux connaître l'origine de l'appel du journal (CREUSER les couches ...)

Merci à tous ...

Tiago Dias

Répondre

3

J'ai trouvé une solution à mon problème. J'ai bouclé le log4net dans mes propres méthodes et j'ai créé des intents de LoggingEvent. Dans chaque cas, j'ai utilisé une propriété avec Environment.StackTrace. De cette façon, j'ai l'événement StackTrace foreach dans mon application, même sans exception.

Merci à tous ..

1

Vous pouvez obtenir le nom de la méthode d'appel et le numéro de ligne en utilisant% location, mais pas la totalité de la trace de la pile sans étendre log4net. Vérifiez les réponses à cette question:

Does log4net support including the call stack in a log message

Vérifiez également la page de documentation PatternLayout sur apache.org pour plus de détails autres emplacement vous pouvez produire:

http://logging.apache.org/log4net/release/sdk/log4net.Layout.PatternLayout.html

Je ne sais pas si cela s'applique toujours moderne ordinateurs, mais la documentation log4net avertit que la génération d'informations sur l'appelant est coûteuse.

Questions connexes