localisation: Log debug message for backend of MessageCache
[lhc/web/wiklou.git] / includes / ServiceWiring.php
index 1ee17b2..e83f625 100644 (file)
@@ -262,7 +262,7 @@ return [
 
        'LanguageNameUtils' => function ( MediaWikiServices $services ) : LanguageNameUtils {
                return new LanguageNameUtils( new ServiceOptions(
-                       LanguageNameUtils::$constructorOptions,
+                       LanguageNameUtils::CONSTRUCTOR_OPTIONS,
                        $services->getMainConfig()
                ) );
        },
@@ -359,7 +359,15 @@ return [
                                "Cache type \"$id\" is not present in \$wgObjectCaches." );
                }
 
-               return ObjectCache::newFromParams( $mainConfig->get( 'ObjectCaches' )[$id] );
+               $params = $mainConfig->get( 'ObjectCaches' )[$id];
+               $logger = $params['logger'] = LoggerFactory::getInstance( $params['loggroup'] ?? 'objectcache' );
+
+               $store = ObjectCache::newFromParams( $params );
+               $logger->debug( 'MainObjectStash using store {class}', [
+                       'class' => get_class( $store )
+               ] );
+
+               return $store;
        },
 
        'MainWANObjectCache' => function ( MediaWikiServices $services ) : WANObjectCache {
@@ -372,14 +380,35 @@ return [
                }
 
                $params = $mainConfig->get( 'WANObjectCaches' )[$id];
+
+               $logger = LoggerFactory::getInstance( $params['loggroup'] ?? 'objectcache' );
+
                $objectCacheId = $params['cacheId'];
                if ( !isset( $mainConfig->get( 'ObjectCaches' )[$objectCacheId] ) ) {
                        throw new UnexpectedValueException(
                                "Cache type \"$objectCacheId\" is not present in \$wgObjectCaches." );
                }
-               $params['store'] = $mainConfig->get( 'ObjectCaches' )[$objectCacheId];
+               $storeParams = $mainConfig->get( 'ObjectCaches' )[$objectCacheId];
+               $store = ObjectCache::newFromParams( $storeParams );
+               $logger->debug( 'MainWANObjectCache using store {class}', [
+                       'class' => get_class( $store )
+               ] );
+
+               $params['logger'] = $logger;
+               $params['cache'] = $store;
+               $params['secret'] = $params['secret'] ?? $mainConfig->get( 'SecretKey' );
+               if ( !$mainConfig->get( 'CommandLineMode' ) ) {
+                       // Send the statsd data post-send on HTTP requests; avoid in CLI mode (T181385)
+                       $params['stats'] = $services->getStatsdDataFactory();
+                       // Let pre-emptive refreshes happen post-send on HTTP requests
+                       $params['asyncHandler'] = [ DeferredUpdates::class, 'addCallableUpdate' ];
+               }
+
+               $class = $params['class'];
+               $instance = new $class( $params );
 
-               return ObjectCache::newWANCacheFromParams( $params );
+               '@phan-var WANObjectCache $instance';
+               return $instance;
        },
 
        'MediaHandlerFactory' => function ( MediaWikiServices $services ) : MediaHandlerFactory {
@@ -390,12 +419,21 @@ return [
 
        'MessageCache' => function ( MediaWikiServices $services ) : MessageCache {
                $mainConfig = $services->getMainConfig();
+               $clusterCache = ObjectCache::getInstance( $mainConfig->get( 'MessageCacheType' ) );
+               $srvCache = $mainConfig->get( 'UseLocalMessageCache' )
+                       ? $services->getLocalServerObjectCache()
+                       : new EmptyBagOStuff();
+
+               // TODO: Inject this into MessageCache.
+               $logger = LoggerFactory::getInstance( 'MessageCache' );
+               $logger->debug( 'MessageCache using store {class}', [
+                       'class' => get_class( $clusterCache )
+               ] );
+
                return new MessageCache(
                        $services->getMainWANObjectCache(),
-                       ObjectCache::getInstance( $mainConfig->get( 'MessageCacheType' ) ),
-                       $mainConfig->get( 'UseLocalMessageCache' )
-                               ? $services->getLocalServerObjectCache()
-                               : new EmptyBagOStuff(),
+                       $clusterCache,
+                       $srvCache,
                        $mainConfig->get( 'UseDatabaseMessages' ),
                        $services->getContentLanguage()
                );