[Zend Framework] Zend_Log: エラーコントローラで受けたエラーをログ出力する
ErrorController を確認しながら、例外処理について調べていきます。
Zend Framework Version: 1.12.3
[markdown]
ErrorController を確認しているとログに関する記述がありました。
Zend_Log を使えそうなので動かしてみます。
## ErrorController
zf で作成したプロジェクトで生成された ErrorController です。
> * [zfSkelton/application/controllers/ErrorController.php at master · DriftwoodJP/zfSkelton · GitHub](https://github.com/DriftwoodJP/zfSkelton/blob/master/application/controllers/ErrorController.php)
function getLog() にこんな記述がありました。
“`php:application/controllers/ErrorController.php
$bootstrap = $this->getInvokeArg(‘bootstrap’);
“`
bootstrap を取得して、application.ini で設定したリソースを取得しようとしている模様。
> * [【Zend】処理中にbootstrapを取得する方法 | Life](http://life.co-hey.com/2010/03/%E3%80%90zend%E3%80%91%E5%87%A6%E7%90%86%E4%B8%AD%E3%81%ABbootstrap%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/)
“`php:application/controllers/ErrorController.php
$log = $bootstrap->getResource(‘Log’);
“`
Log という設定を取りに行っているようなので、application.ini にこの設定を追記することで動かせそうです。
## application.ini
> * [利用できるリソースプラグイン – Zend_Application – Zend Framework](http://framework.zend.com/manual/1.12/ja/zend.application.available-resources.html#zend.application.available-resources.log)
サンプルを使います。
“`php: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
“`
> * [概要 – Zend_Log – Zend Framework](http://framework.zend.com/manual/1.12/ja/zend.log.overview.html)
追記モード (“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 にディレクトリを用意します。
また、ファイルの書き込みができるよう、パーミッションを変更します。
> * [推奨されるプロジェクト・ディレクトリ構造 – Zend Framework MVC アプリケーションのために推奨されるプロジェクト構造 – Zend Framework](http://framework.zend.com/manual/1.12/ja/project-structure.project.html)
## 出力結果
エラーを起こして、ログを出力させてみます。
“`:data/logs/application.log
2013-07-29T22:02:41+09:00 CRIT (2): Application error
2013-07-29T22:02:41+09:00 CRIT (2): Request Parameters
“`
[/markdown]