Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
LegacySpi
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 2
12
0.00% covered (danger)
0.00%
0 / 1
 getLogger
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 setLoggerForTest
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2/**
3 * @license GPL-2.0-or-later
4 * @file
5 */
6
7namespace MediaWiki\Logger;
8
9use Psr\Log\LoggerInterface;
10
11/**
12 * The default service provider for MediaWiki\Logger\LoggerFactory, which creates
13 * LegacyLogger objects.
14 *
15 * Usage:
16 * @code
17 * $wgMWLoggerDefaultSpi = [
18 *   'class' => \MediaWiki\Logger\LegacySpi::class,
19 * ];
20 * @endcode
21 *
22 * @since 1.25
23 * @ingroup Debug
24 * @copyright © 2014 Wikimedia Foundation and contributors
25 */
26class LegacySpi implements Spi {
27
28    /**
29     * @var array
30     */
31    protected $singletons = [];
32
33    /**
34     * Get a logger instance.
35     *
36     * @param string $channel Logging channel
37     * @return \Psr\Log\LoggerInterface Logger instance
38     */
39    public function getLogger( $channel ) {
40        if ( !isset( $this->singletons[$channel] ) ) {
41            $this->singletons[$channel] = new LegacyLogger( $channel );
42        }
43        return $this->singletons[$channel];
44    }
45
46    /**
47     * @internal For use by MediaWikiIntegrationTestCase
48     * @param string $channel
49     * @param LoggerInterface|null $logger
50     * @return LoggerInterface|null
51     */
52    public function setLoggerForTest( $channel, ?LoggerInterface $logger = null ) {
53        $ret = $this->singletons[$channel] ?? null;
54        $this->singletons[$channel] = $logger;
55        return $ret;
56    }
57
58}