Don't log HttpErrors in the exception log, use MWLogger
Bug: T85795 Change-Id: Ic36f657a6447dd99c78681536e5dfb066d97b409
This commit is contained in:
parent
1e5efc85f3
commit
ff707bba77
1 changed files with 39 additions and 1 deletions
|
|
@ -42,6 +42,19 @@ class HttpError extends MWException {
|
|||
$this->content = $content;
|
||||
}
|
||||
|
||||
/**
|
||||
* We don't want the default exception logging as we got our own logging set
|
||||
* up in self::report.
|
||||
*
|
||||
* @see MWException::isLoggable
|
||||
*
|
||||
* @since 1.24
|
||||
* @return bool
|
||||
*/
|
||||
public function isLoggable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the HTTP status code supplied to the constructor.
|
||||
*
|
||||
|
|
@ -52,11 +65,13 @@ class HttpError extends MWException {
|
|||
}
|
||||
|
||||
/**
|
||||
* Report the HTTP error.
|
||||
* Report and log the HTTP error.
|
||||
* Sends the appropriate HTTP status code and outputs an
|
||||
* HTML page with an error message.
|
||||
*/
|
||||
public function report() {
|
||||
$this->doLog();
|
||||
|
||||
$httpMessage = HttpStatus::getMessage( $this->httpCode );
|
||||
|
||||
header( "Status: {$this->httpCode} {$httpMessage}", true, $this->httpCode );
|
||||
|
|
@ -65,6 +80,29 @@ class HttpError extends MWException {
|
|||
print $this->getHTML();
|
||||
}
|
||||
|
||||
private function doLog() {
|
||||
$logger = MWLoggerFactory::getInstance( 'HttpError' );
|
||||
$content = $this->content;
|
||||
|
||||
if ( $content instanceof Message ) {
|
||||
$content = $content->text();
|
||||
}
|
||||
|
||||
$context = array(
|
||||
'file' => $this->getFile(),
|
||||
'line' => $this->getLine(),
|
||||
'http_code' => $this->httpCode,
|
||||
);
|
||||
|
||||
$logMsg = "$content ({http_code}) from {file}:{line}";
|
||||
|
||||
if ( $this->getStatusCode() < 500 ) {
|
||||
$logger->info( $logMsg, $context );
|
||||
} else {
|
||||
$logger->error( $logMsg, $context );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns HTML for reporting the HTTP error.
|
||||
* This will be a minimal but complete HTML document.
|
||||
|
|
|
|||
Loading…
Reference in a new issue