[Monolog][Symfony] Monolog が神過ぎる件 ~エラーログをメールで送ろう~
Symfony で採用されているロガーライブラリ Monolog は Python の LogBook と言うライブラリに影響を受けており、
柔軟なロギング処理が可能です。
今回は、Symfony の運用環境でERROR
レベル以上のログをファイルに書き込みつつ、メールでも通知するように設定してみます。
以下、config.yml
記述例。
monolog: handlers: # ERROR 以上でログファイル書き込み+メール送信 main: type: fingers_crossed action_level: ERROR handler: grouped # 以下 fingers_crossed 用 grouped: type: group members: [file, email] file: type: stream path: %kernel.logs_dir%/%kernel.environment%.log level: DEBUG email: type: swift_mailer from_email: no-reply@example.com to_email: issei.m7@gmail.com subject: "[example.com] An error occurred!" level: DEBUG
main
にはERROR
レベル以上でgrouped
が処理され、file
とemail
が実行されるように設定しています。
このfingers_crossed
が非常に優秀でgrouped
, file
, email
はmain
の下位ハンドラとなっており、通常は処理されません。この為file
やemail
はレベルがDEBUG
ですが、エラー発生時にだけ該当セッション中の全ログが書き込まれます。
これで無駄にログを肥大させる事なく、デバッグ効率が格段上がりまくりんぐです。