The MWLogger class is actually a thin wrapper around any PSR-3 LoggerInterface implementation. Named MWLogger instances can be obtained from the MWLogger::getInstance() static method. MWLogger expects a class implementing the MWLoggerSpi interface to act as a factory for new MWLogger instances. A concrete MWLoggerSpi implementation using the Monolog library is also provided. New classes introduced: ; MWLogger : PSR-3 compatible logger that wraps any \Psr\Log\LoggerInterface implementation ; MWLoggerSpi : Service provider interface for MWLogger factories ; MWLoggerNullSpi : MWLoggerSpi for creating instances that discard all log events ; MWLoggerMonologSpi : MWLoggerSpi for creating instances backed by the monolog logging library ; MWLoggerMonologHandler : Monolog handler that replicates the udp2log and file logging functionality of wfErrorLog() ; MWLoggerMonologProcessor : Monolog log processer that adds host:wfHostname() and wiki:wfWikiID() to all records New globals introduced: ; $wgMWLoggerDefaultSpi : Default service provider interface to use with MWLogger ; $wgMWLoggerMonologSpiConfig : Configuration for MWLoggerMonologSpi describing how to configure the Monolog logger instances. This change relies on the Composer managed Psr\Log and Monolog libraries introduced in Ie667944. Change-Id: I5c822995a181a38c844f4a13cb172297827e0031
45 lines
1.5 KiB
PHP
45 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* @section LICENSE
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*
|
|
* @file
|
|
*/
|
|
|
|
/**
|
|
* Service provider interface for MWLogger implementation libraries.
|
|
*
|
|
* MediaWiki can be configured to use a class implementing this interface to
|
|
* create new MWLogger instances via either the $wgMWLoggerDefaultSpi global
|
|
* variable or code that constructs an instance and registeres it via the
|
|
* MWLogger::registerProvider() static method.
|
|
*
|
|
* @see MWLogger
|
|
* @since 1.25
|
|
* @author Bryan Davis <bd808@wikimedia.org>
|
|
* @copyright © 2014 Bryan Davis and Wikimedia Foundation.
|
|
*/
|
|
interface MWLoggerSpi {
|
|
|
|
/**
|
|
* Get a logger instance.
|
|
*
|
|
* @param string $channel Logging channel
|
|
* @return MWLogger Logger instance
|
|
*/
|
|
public function getLogger( $channel );
|
|
|
|
}
|