2012-04-21 21 views
6

criticalエラーのメールを私に送信するようにSymfony2を設定しますが、ログにはエラーerrorだけを記録します。次の設定はそれを行いますか? Symfony2 Monologメールとファイルロギングの設定

monolog: 
    handlers: 
     main: 
      type:   fingers_crossed 
      action_level: error 
      handler:  grouped 
     grouped: 
      type: group 
      members: [filelog, mail] 
     # log all errors to file 
     filelog: 
      type:   fingers_crossed 
      action_level: error 
      handler:  nested_stream 
     nested_stream: 
      type: stream 
      path: "%kernel.logs_dir%/%kernel.environment%.log" 
      level: debug 
     # send me an email when we have a critical error 
     mail: 
      type:   fingers_crossed 
      action_level: critical 
      handler:  buffered 
     buffered: 
      type: buffer 
      handler: swift 
     swift: 
      type:  swift_mailer 
      from_email: %mailer_sender% 
      to_email: %error_email% 
      subject: "[FeedStream Error]" 
      level:  debug 

は、私が見た: http://symfony.com/doc/current/cookbook/logging/monolog_email.htmlをしかし、それはすべてで、私はまだログインしていない(ただし、電子メールを)したい場合である errorを処理しません。私は設定がうまくいくとは思っていましたが、モノログの設定については十分に分かりません。これが正しかったか、よりよい方法があるかどうか私に教えてください。

+0

例外のメールが届きますか? – Sethunath

+2

ハンドラはスタック内で連続して呼び出されます。重大なエラーを郵送したい場合は、action_level = criticalを指定してスタックに単独で置くことができます。 –

答えて

7

私の生産モノログの設定は次のとおりです。これは、「エラー」レベル以上をファイルに記録しながら、重大なエラーを送信していることを確認します。私は別々のファイルに別々のチャンネルを分割しました。他のチャンネルは「リクエスト」よりもはるかに少ないエラーを生成するように見えるので、それらを私のためにプロダクションで分割するのは理にかなっています。それはあなたの質問ではないが、それが他の誰かを助けることを願ってください。これはほとんどの要件に適合するように後退します。

monolog: 
    handlers: 
    main: 
     level: error 
     type: stream 
     path: "%kernel.logs_dir%/%kernel.environment%_remaining.log" 
     channels: ["!doctrine", "!request", "!security"] 
    request: 
     type: fingers_crossed 
     handler: requests 
     excluded_404s: 
      - ^/phpmyadmin 
    requests: 
     type: group 
     members: [request_critical, request_error] 
    request_critical: 
     level: critical 
     type: stream 
     path: "%kernel.logs_dir%/%kernel.environment%_request_critical.log" 
     channels: [request] 
    request_error: 
     level: error 
     type: stream 
     path: "%kernel.logs_dir%/%kernel.environment%_request.log" 
     channels: [request] 
    doctrine: 
     level: error 
     type: stream 
     path: "%kernel.logs_dir%/%kernel.environment%_doctrine.log" 
     channels: [doctrine] 
    security: 
     level: error 
     type: stream 
     path: "%kernel.logs_dir%/%kernel.environment%_security.log" 
     channels: [security] 
    mail: 
     type: fingers_crossed 
     action_level: critical 
     handler: buffered 
    buffered: 
     type: buffer 
     handler: swift 
    swift: 
     type: swift_mailer 
     from_email: [email protected] 
     to_email: [email protected] 
     subject: A critical error occurred 
関連する問題