X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fdebug%2Flogger%2FLegacyLogger.php;h=bbcd33ac753895e646709d8cc41551b513cec2b5;hb=91a693919e2e704114f2e69e3282577e4c47bb15;hp=d4a79d931f168b354cdb83490da0150660d2137d;hpb=be74c82f9a19f9fc5a0c771ec627b9aa9746089e;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/debug/logger/LegacyLogger.php b/includes/debug/logger/LegacyLogger.php index d4a79d931f..bbcd33ac75 100644 --- a/includes/debug/logger/LegacyLogger.php +++ b/includes/debug/logger/LegacyLogger.php @@ -22,6 +22,7 @@ namespace MediaWiki\Logger; use DateTimeZone; use Exception; +use WikiMap; use MWDebug; use MWExceptionHandler; use Psr\Log\AbstractLogger; @@ -29,7 +30,7 @@ use Psr\Log\LogLevel; use UDPTransport; /** - * PSR-3 logger that mimics the historic implementation of MediaWiki's + * PSR-3 logger that mimics the historic implementation of MediaWiki's former * wfErrorLog logging implementation. * * This logger is configured by the following global configuration variables: @@ -93,18 +94,38 @@ class LegacyLogger extends AbstractLogger { * @return null */ public function log( $level, $message, array $context = [] ) { + global $wgDBerrorLog; + if ( is_string( $level ) ) { $level = self::$levelMapping[$level]; } - if ( $this->channel === 'DBQuery' && isset( $context['method'] ) - && isset( $context['master'] ) && isset( $context['runtime'] ) + if ( $this->channel === 'DBQuery' + && isset( $context['method'] ) + && isset( $context['master'] ) + && isset( $context['runtime'] ) ) { - MWDebug::query( $message, $context['method'], $context['master'], $context['runtime'] ); - return; // only send profiling data to MWDebug profiling + // Also give the query information to the MWDebug tools + $enabled = MWDebug::query( + $message, + $context['method'], + $context['master'], + $context['runtime'] + ); + if ( $enabled ) { + // If we the toolbar was enabled, return early so that we don't + // also log the query to the main debug output. + return; + } } + // If this is a DB-related error, and the site has $wgDBerrorLog + // configured, rewrite the channel as wfLogDBError instead. + // Likewise, if the site does not use $wgDBerrorLog, it should + // configurable like any other channel via $wgDebugLogGroups + // or $wgMWLoggerDefaultSpi. if ( isset( self::$dbChannels[$this->channel] ) && $level >= self::$levelMapping[LogLevel::ERROR] + && $wgDBerrorLog ) { // Format and write DB errors to the legacy locations $effectiveChannel = 'wfLogDBError'; @@ -145,10 +166,6 @@ class LegacyLogger extends AbstractLogger { // specfied. $shouldEmit = (bool)$wgDBerrorLog; - } elseif ( $channel === 'wfErrorLog' ) { - // All messages on the wfErrorLog channel should be emitted. - $shouldEmit = true; - } elseif ( $channel === 'wfDebug' ) { // wfDebug messages are emitted if a catch all logging file has // been specified. Checked explicitly so that 'private' flagged @@ -192,10 +209,9 @@ class LegacyLogger extends AbstractLogger { /** * Format a message. * - * Messages to the 'wfDebug', 'wfLogDBError' and 'wfErrorLog' channels - * receive special formatting to mimic the historic output of the functions - * of the same name. All other channel values are formatted based on the - * historic output of the `wfDebugLog()` global function. + * Messages to the 'wfDebug' and 'wfLogDBError' channels receive special formatting to mimic the + * historic output of the functions of the same name. All other channel values are formatted + * based on the historic output of the `wfDebugLog()` global function. * * @param string $channel * @param string $message @@ -211,9 +227,6 @@ class LegacyLogger extends AbstractLogger { } elseif ( $channel === 'wfLogDBError' ) { $text = self::formatAsWfLogDBError( $channel, $message, $context ); - } elseif ( $channel === 'wfErrorLog' ) { - $text = "{$message}\n"; - } elseif ( $channel === 'profileoutput' ) { // Legacy wfLogProfilingData formatitng $forward = ''; @@ -314,7 +327,7 @@ class LegacyLogger extends AbstractLogger { $date = $d->format( 'D M j G:i:s T Y' ); $host = wfHostname(); - $wiki = wfWikiID(); + $wiki = WikiMap::getWikiIdFromDbDomain( WikiMap::getCurrentWikiDbDomain() ); $text = "{$date}\t{$host}\t{$wiki}\t{$message}\n"; return $text; @@ -330,7 +343,7 @@ class LegacyLogger extends AbstractLogger { */ protected static function formatAsWfDebugLog( $channel, $message, $context ) { $time = wfTimestamp( TS_DB ); - $wiki = wfWikiID(); + $wiki = WikiMap::getWikiIdFromDbDomain( WikiMap::getCurrentWikiDbDomain() ); $host = wfHostname(); $text = "{$time} {$host} {$wiki}: {$message}\n"; return $text; @@ -362,7 +375,7 @@ class LegacyLogger extends AbstractLogger { * @return string */ protected static function flatten( $item ) { - if ( null === $item ) { + if ( $item === null ) { return '[Null]'; }