<?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__);

?>