<?php
require_once 'Log.php';
$logfile = &Log::singleton('file', '/tmp/test_log',
'PHP',
array('mode' => 0666), PEAR_LOG_DEBUG);
$logfire = &Log::singleton('firebug', '',
'PHP',
array('buffering' => true),
PEAR_LOG_DEBUG);
$log = &Log::singleton('composite');
$log->addChild($logfile);
$log->addChild($logfire);
function errorHandler($code, $message, $file, $line) {
$log = &Log::singleton('composite');
/* Map the PHP error to a Log priority. */
switch ($code) {
case E_WARNING:
case E_USER_WARNING:
$priority = PEAR_LOG_WARNING;
break;
case E_NOTICE:
case E_USER_NOTICE:
$priority = PEAR_LOG_NOTICE;
break;
case E_ERROR:
case E_USER_ERROR:
$priority = PEAR_LOG_ERR;
break;
default:
$priority = PEAR_LOG_INFO;
}
$log->log($message . ' in ' . $file . ' at line ' . $line,
$priority);
}
set_error_handler('errorHandler');
/* This causes an error */
sprintf('%s %s', 'foo');
show_source(__FILE__);
?>