上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。




ZendFrameworkZend_Logを使ってアプリケーションの動作ログを残してみます。
Zend Framework: Documentation 第30章 Zend_Log


Logクラスの作成


Zend_Logの設定やログを出力するファイル読み込みなどを行うLogクラスを作成します。
ここでは、クラス名をLogManagerとしています。任意に変更してください。


<?php
require_once 'Zend/Log.php';
class LogManager {
var $logger;

private function createLogManager() {
$stream = @fopen('../log/app.log', 'a', false);
if (!$stream) {
throw new Exception('ストリームのオープンに失敗しました');
}
$this->logger = new Zend_Log();
$writer = new Zend_Log_Writer_Stream($stream);
//DEBUGを変更する事でログ出力レベルを変更できます。
$filter = new Zend_Log_Filter_Priority(Zend_Log::DEBUG);
$writer->addFilter($filter);
$this->logger = new Zend_Log($writer);
}
}
?>

上記ソースの”createLogManager()”で出力するログファイルを読み込み、Zend_Logのインスタンス生成などを行っています。
今回は、”Zend_Log_Writer_Stream”でファイルへ書き出しする方法を使っていますが、ファイル以外にも出力できるようです。
・データベースへの書き出し
・Firebug への書き込み
・Email への書き込み
また、上記を組み合わせることもできます。
詳細は下記を参照ください。
Zend Framework: Documentation 第30章 Zend_Log 30.2. ライター

ログを出力するメソッドの作成


上記で作成したクラスに各レベル毎(debug,info,errorなど)にメソッドを追加します。
今回はログを出した”クラス名”と”メソッド名”を出したかったので、そちらも追加しています。
デバッグレベルのログを出力するメソッドの例は下記です。
/*
* debugレベルのログを出力します。
*/
public function log_debug($msg) {
$this->createLogManager();
$backtraces = debug_backtrace();
$this->logger->debug($backtraces[1]['class'].":".$backtraces[1]['function'].":".$msg);
}


実際にログを出力


<?php
require_once '../application/models/utility/LogManager.class.php';
class IndexController
{
public function indexAction()
{
$logging = new LogManager();
$logging->log_debug('テスト');
}
}
?>

出力されたログの中身は下記の通りです。
2009-03-11T19:05:06+09:00 DEBUG (7): IndexController:indexAction:テスト


とりあえずこんな感じです。
少しでも参考になれば応援お願いします。












上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。