[Zend Framework] Zend_Log: エラーコントローラで受けたエラーをログ出力する
ErrorController を確認しながら、例外処理について調べていきます。
Zend Framework Version: 1.12.3
ErrorController を確認しているとログに関する記述がありました。
Zend_Log を使えそうなので動かしてみます。
ErrorController
zf で作成したプロジェクトで生成された ErrorController です。
function getLog() にこんな記述がありました。
$bootstrap = $this->getInvokeArg('bootstrap');
bootstrap を取得して、application.ini で設定したリソースを取得しようとしている模様。
$log = $bootstrap->getResource('Log');
Log という設定を取りに行っているようなので、application.ini にこの設定を追記することで動かせそうです。
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
追記モード (“a”)
EMERG = 0; // 緊急事態 (Emergency): システムが使用不可能です
ALERT = 1; // 警報 (Alert): 至急対応が必要です
CRIT = 2; // 危機 (Critical): 危機的な状況です
ERR = 3; // エラー (Error): エラーが発生しました
WARN = 4; // 警告 (Warning): 警告が発生しました
NOTICE = 5; // 注意 (Notice): 通常動作ですが、注意すべき状況です
INFO = 6; // 情報 (Informational): 情報メッセージ
DEBUG = 7; // デバッグ (Debug): デバッグメッセージ
/data/logs にディレクトリを用意します。
また、ファイルの書き込みができるよう、パーミッションを変更します。
出力結果
エラーを起こして、ログを出力させてみます。
2013-07-29T22:02:41+09:00 CRIT (2): Application error
2013-07-29T22:02:41+09:00 CRIT (2): Request Parameters