resourceloader: Include exception log id in error message
authorTimo Tijhof <krinklemail@gmail.com>
Wed, 23 Sep 2015 16:36:10 +0000 (17:36 +0100)
committerOri.livneh <ori@wikimedia.org>
Fri, 25 Sep 2015 23:40:03 +0000 (23:40 +0000)
This changes the current:

> Internal error.

To be:

> [89466ede] 2015-09-23 16:40: Fatal exception of type Less_Exception

This matches how exceptions are reported on HTML pages by MediaWiki
(via MWException::getHTML in OutputPage).

The IDs are okay to be public and exposed on HTML pages even when
$wgShowExceptionDetails is disabled.

Follows-up d478ffde100. Ref T110659.

Change-Id: I501eaa629161184ba89d44e53cdac20b39cb0903

includes/exception/MWExceptionHandler.php
includes/resourceloader/ResourceLoader.php

index d25f1a8..4e50070 100644 (file)
@@ -485,6 +485,14 @@ TXT;
                return "[$id] $url   $type from line $line of $file: $message";
        }
 
+       public static function getPublicLogMessage( Exception $e ) {
+               $logId = self::getLogId( $e );
+               $type = get_class( $e );
+               return '[' . $logId . '] '
+                       . gmdate( 'Y-m-d H:i:s' ) . ': '
+                       . 'Fatal exception of type ' . $type;
+       }
+
        /**
         * Get a PSR-3 log event context from an Exception.
         *
index 1f48514..ab36701 100644 (file)
@@ -941,10 +941,10 @@ class ResourceLoader implements LoggerAwareInterface {
                global $wgShowExceptionDetails;
 
                if ( !$wgShowExceptionDetails ) {
-                       return 'Internal error';
+                       return MWExceptionHandler::getPublicLogMessage( $e );
                }
 
-               return $e->__toString();
+               return MWExceptionHandler::getLogMessage( $e );
        }
 
        /**