2014-09-23 60 views
5

我正在嘗試在Symfony中配置電子郵件日誌記錄。我跟着the cookbook,它的工作原理,但我有致命錯誤的問題。在symfony中記錄致命錯誤

這些錯誤未記錄在產品模式中。我想到,當我將Debug::enable();添加到app.php時,錯誤被記錄下來,但是我仍然沒有收到電子郵件。

下面是相關配置:

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

您可能會對錯誤至關重要,因爲您會給予400x消息以及500x消息。但@Yann Eugone是正確的,一個致命的錯誤關閉了所有的東西,抓住這些並不現實。當然,如果你在生產中遇到致命的錯誤,那就意味着你的測試方法需要工作。 – Cerad 2014-09-23 14:08:10

+1

@Cerad 4xx不是問題。即使有人使用ipad訪問網頁,它們也會發生(該工具未針對該網頁進行優化),並且它要求它是Apple-touch-icon,所以我不在意這些。我也知道一個致命的錯誤不應該發生在生產中,但如果它發生了......我想知道! – Nemo64 2014-09-24 08:31:58

回答

1

你正在使用哪個Symfony版本?

看起來像從2.3有一個很好的改進,可以讓你做到這一點(記錄致命錯誤)。看看這個:https://github.com/symfony/symfony/pull/6474

+0

我有多個symfony實例。最古老的是2.1。我會看看它是否適用於更新的版本。 – Nemo64 2014-11-06 10:38:41

0

我有同樣的問題(記錄在生產致命的錯誤回報,但郵件沒有發送),我設法使它工作添加到我的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 } 

我發現該服務在\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Resources\config\debug.xml中定義,但不在debug_prod.xml中定義。

回調到terminateWithException它在我的應用程序中正常工作。