logger

trigger_error()はE_USER_NOTICEがデフォ

定数とerror levelの対応

constant value error_type
LEVEL_DEBUG 1000
LEVEL_INFO 2000 E_USER_NOTICE,E_NOTICE
LEVEL_WARN 3000 E_USER_WARNING,E_WARNING
LEVEL_ERROR 4000
LEVEL_FATAL 5000 E_USER_ERROR,E_ERROR

とりあえず前準備

  • Subjectに追加した順に実行される。
$logger =& LogManager::getLogger();
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 . 'oreore_%d{Y_m_d}.log' );
// おぶざーば追加
$logger->addAppender( 'file', $appender );

なんとなく開発時

$logger->setExitPriority( LEVEL_FATAL );
$logger->setPriority( LEVEL_DEBUG );
// $logger->removeAppender( 'stdout' );

これでいいのか本番時

ini_set( 'display_errors', 0 );

$logger->setExitPriority( 0 );       // fatalで死なない。
$logger->setPriority( LEVEL_FATAL );
$logger->removeAppender( 'stdout' ); // ブラウザに表示しない。

// fatalの場合メール送信
require_once( LIB_DIR . 'logging/MailAppender.class.php' );
$mailAppender =& new MailAppender($layout);
$logger->addAppender( 'mail', $mailAppender );

// fatalの場合、エラーページを表示。
require_once( LIB_DIR . 'logging/ExitAppender.class.php' );
$exitAppender =& new ExitAppender($layout);
$logger->addAppender( 'exit', $exitAppender );