8
votes

Comment générer des informations d'exception dans le fichier journal avec log4php?

J'ai configuré log4php pour vous connecter à un fichier à l'aide du LoggerAppenderRollingFile Appender et le LOGGERLAYOutTTCC Layout. Lorsque je me connecte une exception, cependant, il n'affiche pas les détails d'exception telles que la trace de la pile comme si je suis habitué à voir dans log4net.

J'ai un coup d'œil rapide à travers le code et on dirait que le LoggerAppenderMongodb a la prise en charge de l'affichage des exceptions avec le Méthode informatique , mais je ne vois rien de similaire dans les autres annexes.

Je me sens comme si on me manque quelque chose d'évident. Y a-t-il quelque chose que je dois configurer pour imprimer ces informations sur le fichier journal? Dois-je créer une classe de LoggerAppender personnalisée? Ou peuvent-ils être effectués avec une mise en page différente ou un rendu personnalisé?


0 commentaires

4 Réponses :


1
votes

Vous devez utiliser la fonction PHP Set_Exception_Handler et envelopper Log4php à l'aide de cette fonction. Vérifiez-le à: http://php.net/manual/fr/ fonction.set-exception-manutention.php xxx

log-> débogage ($ exception-> getMessage ()); }

set_exception_handler ('excepte_handler');


0 commentaires

1
votes

Je suis arrivé à la même conclusion: il semble que Log4phP ne fait que quelque chose avec le paramètre jethable dans le loggerAppenderMongodb.php Appendender.

Le < Code> LoggerAppenderFile La classe de base repose sur la mise en page, LOGGERLAYOutTTCC , pour formater le message (comme on pourrait s'y attendre). Cette classe a une méthode ignoresthrowable () , qui retourne vrai. Bien que cette méthode ne semble pas être appelée, elle communique légèrement que les auteurs ne semblaient pas avoir l'intention de prendre une note de l'erreur.

J'ai ajouté ma propre classe de mise en page qui étend le format LOGGERLAYOUTTTCC et le remplacement () xxx


0 commentaires

2
votes

FYI, maintenant que LOGGERLAYOUTTTTCC est obsolète, vous pouvez utiliser LOGGERLAYOutPattern avec une chaîne de format mieux pour inclure des exceptions. XXX

Voir la section Exceptions de journalisation des documents: http://logging.apache.org/log4php/docs/layouts/pattern.html#logging_exceptions


0 commentaires

0
votes

Il m'a fallu un moment pour déterminer pourquoi le nom du fichier d'origine et le numéro de ligne n'étaient pas enregistrés par log4php lorsqu'une exception est lancée. Il s'est avéré que ma classe exception_handler enregistrait uniquement le message d'exception (en faisant $ exception-> getMessage () ), qui ne contient pas le nom de fichier ni la ligne numéro. Tout ce que je dois faire est de concaténer cette information: $ exception-> getfile () et $ excepte-> getline () : xxx

N'oubliez pas d'enregistrer le gestionnaire personnalisé: xxx


0 commentaires