2014-09-23 10 views
5

Sto provando a configurare un'e-mail di accesso a Symfony. Ho seguito the cookbook e funziona, ma ho un problema con errori irreversibili.Errori di registro fatali in symfony

Questi errori non vengono registrati in modalità prod. Ho capito che quando aggiungo Debug::enable(); ad app.php, l'errore viene registrato, tuttavia non ricevo ancora un'email.

Ecco la relativa configurazione:

mail: 
     type:   fingers_crossed 
     action_level: critical 
     handler:  buffer 
    buffer: 
     type: buffer 
     handler: swift 
    swift: 
     type:  swift_mailer 
     from_email: %error_mail_from% 
     to_email: %error_mail_to% 
     subject: %error_mail_subject% 
     level:  debug 
+0

È possibile che l'errore venga modificato in modo critico in modo da fornire messaggi 400x e messaggi 500x. Ma @ Yann Eugone ha ragione, un errore fatale spegne tutto e non è davvero pratico catturarli. Naturalmente se si verificano errori fatali nella produzione, ciò implica che la metodologia di test ha bisogno di lavoro. – Cerad

+1

@Cerad 4xx non sono un problema. Accadono anche se qualcuno accede alla pagina con un ipad (lo strumento non è ottimizzato per quello) e richiede la sua icona di apple-touch, quindi non mi interessa per quelli. So anche che un errore fatale non dovrebbe mai accadere in produzione, ma se lo fa ... voglio sapere! – Nemo64

risposta

1

Quale versione di Symfony usi?

A partire dal 2.3 c'è un buon miglioramento che consente di farlo (errori di registrazione fatali). Date un'occhiata a questo: https://github.com/symfony/symfony/pull/6474

+0

Ho più istanze di symfony. Il più vecchio è 2.1. Vedrò se funziona nella versione più recente. – Nemo64

0

ho avuto lo stesso problema (erros fatali registrati produzione, ma le email non inviati) e sono riuscito a farlo funzionare aggiungendo alla mia config_prod.php:

services: 
    mydebug.debug_handlers_listener: 
       class: Symfony\Component\HttpKernel\EventListener\DebugHandlersListener 
       arguments: 
        - { 0:"@http_kernel", 1:'terminateWithException'} 
       tags: 
        - { name: kernel.event_subscriber } 

ho trovato che tale servizio è definito in \vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Resources\config\debug.xml ma non in debug_prod.xml.

Con la richiamata su terminateWithException funziona correttamente nella mia applicazione.

Problemi correlati