loggerまとめ

いまさらモジャ2

require_once( LOGGING_DIR . 'FileAppender.class.php' );
$layout   =& new PatternLayout( '%N %c::%F() %m %d{r} %f:%l%n' );
$appender =& new FileAppender( $layout, LOG_DIR . '%d{Y_m_d}.log' );

$deflog =& LogManager::getLogger();
    
LogManager::addLogger( 'log', new ErrorLogger() );
$log =& LogManager::getLogger('log');
$log->addAppender( 'file', $appender );
// example
// $log =& LogManager::getLogger( 'log' );
// $deflog->setPriority( LEVEL_DEBUG );
// $log->debug( $mesage, __CLASS__, __FUNCTION__, __FILE__, __LINE__ );

if ( defined( '_DEVELOPPING' ) and _DEVELOPPING ) {
    $log->setExitPriority( LEVEL_FATAL );
    $log->setPriority( LEVEL_DEBUG );
    
    $deflog->setExitPriority( LEVEL_FATAL );
    $deflog->setPriority( LEVEL_DEBUG );
}
else {
    $log->setExitPriority( 0 );
    $log->setPriority( LEVEL_INFO );
    
    $deflog->addAppender( 'file', $appender );
    $deflog->setExitPriority( 0 );          // 0にするとエラーで死なない。
    $deflog->setPriority( LEVEL_FATAL );    // FATAL以下にしない
    $deflog->removeAppender( 'stdout' );    // ブラウザに表示しない。

    require_once( LIB_DIR . 'Logging/MailAppender.class.php' );
    $mailAppender =& new MailAppender($layout);
    $deflog->addAppender( 'mail', $mailAppender );

    require_once( LIB_DIR . 'Logging/ExitAppender.class.php' );
    $exitAppender =& new ExitAppender($layout);
    $deflog->addAppender( 'exit', $exitAppender );
}