PEAR_ErrorStackでは、ロガーを指定することでエラーのpushでログを出力するように 指定することができます。
例えば、PearのLogパッケージを指定し、エラーをスタックに積みログをPear::Logにログを 出力します。
$stack =& PEAR_ErrorStack::singleton('MyPackage');
$objLog =& Log::singleton('file','logfile.log','ident');
$stack->setDefaultLogger($objLog);
$stack->push(MYPACKAGE_ERROR_DBERROR, 'error',
array('MySQL' => 'DBエラーメッセージ'
,'SQL' => 'エラー情報'),
'Error:DB %MySQL% : SQL Error:%SQL%');
PEAR_ErrorStackのエラーレベル(上記の場合、error)は、Pear::Logのレベル(定数)に 変換されます。
$levels = array(
'exception' => PEAR_LOG_CRIT,
'alert' => PEAR_LOG_ALERT,
'critical' => PEAR_LOG_CRIT,
'error' => PEAR_LOG_ERR,
'warning' => PEAR_LOG_WARNING,
'notice' => PEAR_LOG_NOTICE,
'info' => PEAR_LOG_INFO,
'debug' => PEAR_LOG_DEBUG);
loggerの設定方法は、2つの方法があります。setDefaultLogger()関数とsetLogger()関数です。
setDefaultLogger()関数は、$GLOBALS['_PEAR_ERRORSTACK_DEFAULT_LOGGER']に格納します。
setLogger()関数は、メンバ変数の$_loggerにloggerを格納します。
Copyright 1997-2008 BBB All rights reserved.