ZendFramework Zend_Debug, Zend_Log, Zend_Exception(デバッグ、ログ、例外)
■Zend_Debug
require_once 'Zend/Debug.php'; $str = 'this is a sample!' Zend_Debug::dump($str);
■Zend_Log
長期にわたって監視したい場合に有効である。
require_once 'Zend/Log.php';
require_once 'Zend/Log/Writer/Stream.php';
$logger = new Zend_Log();
$writer = new Zend_Log_Writer_Stream('/path/to/log.txt');
$logger->addWriter($writer);
DBにログを書き込みたい場合は以下のようにする。
require_once 'Zend/Log.php';
require_once 'Zend/Log/Writer/Db.php';
require_once 'Zend/Db.php';
$dbh = Zend_Db::factory(
'Pdo_Mysql',
array(
'host' => 'localhost',
'username' => 'user',
'password' => 'pass',
'dbname' => 'dbname'
)
);
$dbh->query("SET NAMES 'utf8'");
$logger = new Zend_Log();
$writer = new Zend_Log_Writer_DB(
$dbh,
'table_log',
array(
'level' => 'priority',
'priority' => 'priorityName',
'msg' => 'message',
'register_date' => 'timestamp'
)
);
$logger->addWriter($writer);
上述の場合、既にDBにtable_logテーブルが存在し、カラム(level,priority,msg,register_date)が作られている前提である。
実用例
以下のようにすると警告以上のメッセージしか記録されない。
require_once 'Zend/Log.php';
require_once 'Zend/Log/Writer/Stream.php';
$logger = new Zend_Log();
$writer = new Zend_Log_Writer_Stream('/path/to/log.txt');
$logger->addWriter($writer);
$writer->addFilter(Zend_Log::ERR);
$logger->log('システム使用不可' , Zend_Log::EMERG);
$logger->log('至急対応が必要' , Zend_Log::ALER);
$logger->log('危機的な状況' , Zend_Log::CRIT);
$logger->log('エラー' , Zend_Log::ERR);
$logger->log('警告' , Zend_Log::WARN);
$logger->log('注意' , Zend_Log::NOTICE);
$logger->log('情報' , Zend_Log::INFO);
$logger->log('デバッグメッセージ' , Zend_Log::DEBUG);
■Zend_Exception
ZendFrameworkでは全ての例外がZend_Exceptionを継承している。
<?php
require_once 'Zend/Db.php';
try{
$dbh = Zend_Db::factory(
'Pdo_Mysql',
array(
'host' => 'localhost',
'username' => 'name',
'password' => 'pass',
'dbname' => 'dbname'
)
);
}
catch(Zend_Db_Adapter_Exeption $e){
//failed to connect because of invalid user or db switch in the off position
}
catch(Zend_Exception $e){
//failed to load the class file
}
各メソッドについて
- Zend_Debug::dump(mixed $variable[, string $caption[, bool $isDisplayed]])
- 第一引数の内容を第二引数のキャプションをつけて表示する。第三引数がfalseの場合は値を文字列として返します。
- Zend_Log::__construct(void)
- ログオブジェクトを生成する。
- Zend_Log_Writer_Stream::__construct(string $path_to_txt);
- 第一引数にファイルのパスを指定し書込オブジェクトを生成する。
- Zend_Log_Writer_DB::__construct(resource $dbh, string $table_name, array $dbcolumn_for_log);
- 第一引数にDBハンドラを、第二引数にテーブル名を、第三引数にテーブルのカラムをキーにした連想配列を指定し書込オブジェクトを生成する。
- Zend_Log::addWriter($writer);
- ログオブジェクトに引数の書込オブジェクトを付加する。
- Zend_Log_Writer_Stream::addFilter(int $error_level)
- 第一引数で指定したレベルでフィルタリングする。
TrackBack URL :
Comments (0)