[Zend Framework] Zend_Log: 複数ライターへの出力、複数ログの出力
複数ライターへの出力を行いたいときは、下記のように名前を付けて application.ini に追記すればすぐに使えました(DBを除く)。
; +-----+
; | 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
上記。
Zend_Mail の設定に加えて、下記のような追記をしたところ、メールを受け取ることができました。
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 にログを記録して、ローテーションしてもらっているのかな?
- 雰囲気でわかる“ログローテーション”の仕組み – あしのあしあと
- logrotate によるログのローテーション
Zend Server で syslog.conf 見つからなかったんですが、設定が必要なのかな?- PHP: openlog – Manual
- syslog を使って PHP アプリケーションを改善し、デバッグする
その他
- Zend_Log_Writer_ZendMonitor
- Zend_Log_Writer_Null
- Zend_Log_Writer_Mock
細かい部分の設定方法が、いまいち分かりません。
どうやって調べるのかな。