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