ログとPEAR_ErrorStackの連動
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 を格納します。