[Zend Framework] Zend_Log: 複数ライターへの出力、複数ログの出力

複数ライターへの出力を行いたいときは、下記のように名前を付けて application.ini に追記すればすぐに使えました(DBを除く)。

application/configs/application.ini
; +-----+
; | Log |
; +-----+
resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream = APPLICATION_PATH "/../data/logs/application.log"
resources.log.stream.writerParams.mode = "a"
resources.log.stream.filterName = "Priority"
resources.log.stream.filterParams.priority = 7
resources.log.stream.formatterName = "Simple"
resources.log.stream.formatterParams.format = "%timestamp% %priorityName% (%priority%): %message%" PHP_EOL
resources.log.firebug.writerName = "Firebug"
resources.log.firebug.filterName = "Priority"
resources.log.firebug.filterParams.priority = 7

複数ライターの設定、複数ログの出力

Contents

Stream

上記。

データベース

DBのみ、application.ini だけでは使えない。

Firebug

上記。

Mail

Zend_Mail の設定に加えて、下記のような追記をしたところ、メールを受け取ることができました。

application/configs/application.ini
resources.log.mail.writerName = "Mail"
resources.log.mail.writerParams.mail = "Zend_Mail"
resources.log.mail.writerParams.charset = 'utf-8'
resources.log.mail.writerParams.subject = 'Log '
resources.log.mail.writerParams.from = <メールアドレス>
resources.log.mail.writerParams.to[] = <メールアドレス>
resources.log.mail.filterName = "Priority"
resources.log.mail.filterParams.priority = 7

Zend_Log_Writer_Syslog

一般的には syslog にログを記録して、ローテーションしてもらっているのかな?

その他

  • Zend_Log_Writer_ZendMonitor
  • Zend_Log_Writer_Null
  • Zend_Log_Writer_Mock

細かい部分の設定方法が、いまいち分かりません。
どうやって調べるのかな。