ここでは、Zend_Application_Resource_Log リソースプラグインを使用してログを出力するサンプルを掲載しています。複数のライタを application.ini に設定して、一度に複数のログを出力することもできます。
スポンサーリンク
ログの出力設定 (application.ini)
以下は、ログファイルと syslog へログを出力する複数のライタを application.ini に設定するサンプルになります。
// 1.ファイルに出力する 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 = 2 // 2.syslog に出力する resources.log.syslog.writerName = "Syslog" resources.log.syslog.writerParams.application = "application" // windows の場合、writerParams.facility の設定は application.ini から削除すること(例外が出力された) // なお、facility は LOG_USER 固定(windows)となり、イベントログに出力される resources.log.syslog.writerParams.facility = LOG_USER resources.log.syslog.filterName = "Priority" resources.log.syslog.filterParams.priority = 4 // filterParams.priority = 4 は、Zend_Log::WARN と等価である
アクションコントローラ内でログを出力する
実際にアクションコントローラ内でログを出力するサンプルコードは次の通りです。
class IndexController extends Zend_Controller_Action { public function init() { $log = $this->getInvokeArg('bootstrap')->getResource('log'); // または、以下のようにすることでも取得可能 //$log = $this->getInvokeArg('bootstrap')->getPluginResource('log')->getLog(); $log->log("output log priority Zend_Log::EMERG", Zend_Log::EMERG); $log->log("output log priority Zend_Log::ALERT", Zend_Log::ALERT); $log->log("output log priority Zend_Log::CRIT", Zend_Log::CRIT); $log->log("output log priority Zend_Log::ERR", Zend_Log::ERR); $log->log("output log priority Zend_Log::WARN", Zend_Log::WARN); $log->log("output log priority Zend_Log::NOTICE", Zend_Log::NOTICE); $log->log("output log priority Zend_Log::INFO", Zend_Log::INFO); $log->log("output log priority Zend_Log::DEBUG", Zend_Log::DEBUG); } public function indexAction() { } }
Windows 使用時の注意
Windows 上では syslog はイベントログに出力されるようになります。しかし、イベントログでは8段階のレベル分けは行えないないので、エラー、警告、情報の3段階に振り分けられます。
Zend_Log 優先度 | イベントログ種類(windows) |
---|---|
Zend_Log::EMERG | エラー |
Zend_Log::ALERT | エラー |
Zend_Log::CRIT | エラー |
Zend_Log::ERR | 警告 |
Zend_Log::WARN | 警告 |
Zend_Log::NOTICE | 情報 |
Zend_Log::INFO | 情報 |
Zend_Log::DEBUG | 情報 |