6
votes

Enregistrer des erreurs fatales en symfony

J'essaie de configurer un email de journalisation dans Symfony. J'ai suivi Le livre de recettes et cela fonctionne mais j'ai un problème avec des erreurs fatales .

Ces erreurs ne sont pas connectées en mode Prod. J'ai compris que lorsque j'ajouterai débogage :: activer (); à app.php, l'erreur est enregistrée, mais je n'ai toujours pas d'email.

voici La configuration correspondante: xxx


2 commentaires

Vous pouvez modifier une critique à une erreur car vous vous donnerez des messages 400x ainsi que des messages 500X. Mais @yann Eugone est correct, une erreur fatale ferme tout et il n'est vraiment pas pratique d'attraper ceux-ci. Bien sûr, si vous obtenez des erreurs fatales en production, cela implique que votre méthodologie de test nécessite de fonctionner.


@Cerad 4XX ne sont pas un problème. Ils se produisent même si quelqu'un accède à la page avec un iPad (l'outil n'est pas optimisé pour cela) et il demande son icône Apple-touch, donc je m'en fiche de ceux-ci. Je sais aussi qu'une erreur fatale ne devrait jamais arriver en production, mais si elle le fait ... je veux savoir!


3 Réponses :


2
votes

Ce n'est pas une chose facile à enregistrer les erreurs mortelles PHP, car chaque fois que l'erreur est lancée, arrêt PHP ... Cependant, il existe une fonction qui peut être utilisée pour faire une petite chose juste avant le processus fermé: register_shutdown_function

Jetez un coup d'œil à Comment puis-je attraper une erreur fatale PHP < / a>

Voici comment Symfony's Débogu :: Activer (); fait le tour. Jetez un oeil à https://github.com/symfony/debug/ blob / maître / erreurhandler.php # l118


0 commentaires

1
votes

Quelle version Symfony utilisez-vous?

On dirait que de 2.3 Il y a une bonne amélioration qui vous permet de le faire (enregistrement des erreurs mortelles). Regardez-y: https://github.com/symfony/symfony/pull/6474


1 commentaires

J'ai plusieurs instances de symfony. Le plus ancien est 2.1. Je vais regarder si cela fonctionne dans la version plus récente.



0
votes

J'ai eu le même problème (erros fatals connecté à la production, mais des courriels non envoyés) et j'ai réussi à le faire fonctionner à mon config_prod.php: xxx

J'ai trouvé qu'un tel service est défini dans \ fournisseur \ symfony \ symfony \ src \ symfony \ bundle \ rundle \ ressources \ config \ debug.xml mais pas dans debug_prod.xml . .

avec rappel sur TerminatedwithException Ça fonctionne bien dans mon application.


0 commentaires