From e3a7ecfb9c18f0814826f325b15a2842945f7aa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Thu, 7 Apr 2016 11:13:42 +0200 Subject: [PATCH] Big cleanup + adding a addLogger method. --- README.md | 38 ++++++++++++--- src/Mouf/Utils/Log/Psr/MultiLogger.php | 64 +++++++++++++++----------- 2 files changed, 67 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index c12a655..20593d1 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,37 @@ What is this package ==================== -
DEPRECATED! Warning, this package is deprecated in favor of -mouf/utils.log.psr.errorlog_logger that implements the same logger, but with PSR-3 -compatibility.
+This package contains a PSR-3 compliant composite logger class. -This package contains a logger that logs messages in the PHP error log, using the error_log function. +In practice, this class does not log anything but delegates logging to one or many PSR-3 compliant loggers. +This is useful when you want to call multiple loggers at one. -Mouf package ------------- +Install +------- -This package is part of Mouf (http://mouf-php.com), an effort to ensure good developing practices by providing a graphical dependency injection framework. +```sh +composer require mouf/utils.log.psr.multi-logger +``` + +Usage +----- + +Simply pass an array of loggers to the multi-logger: + +```php +$logger1 = new MyLogger(); +$logger2 = new AnotherLogger(); + +$multiLogger = new Mouf\Utils\Log\Psr\MultiLogger([ $logger1, $logger2 ]); +``` + +You can also add loggers using the `addLogger` method: + +```php +$logger1 = new MyLogger(); +$logger2 = new AnotherLogger(); + +$multiLogger = new Mouf\Utils\Log\Psr\MultiLogger(); +$multiLogger->addLogger($logger1); +$multiLogger->addLogger($logger2); +``` diff --git a/src/Mouf/Utils/Log/Psr/MultiLogger.php b/src/Mouf/Utils/Log/Psr/MultiLogger.php index b14f318..110fed6 100644 --- a/src/Mouf/Utils/Log/Psr/MultiLogger.php +++ b/src/Mouf/Utils/Log/Psr/MultiLogger.php @@ -1,48 +1,56 @@ loggers = $loggers; - } +class MultiLogger extends AbstractLogger +{ + /** + * @var LoggerInterface[] + */ + private $loggers; + + /** + * @param LoggerInterface[] $loggers Array of loggers to be called + */ + public function __construct(array $loggers = array()) + { + $this->loggers = $loggers; + } + + /** + * Adds a logger to the list of loggers. + * + * @param LoggerInterface $logger + */ + public function addLogger(LoggerInterface $logger) + { + $this->loggers[] = $logger; + } /** * Logs with an arbitrary level. * - * @param mixed $level + * @param mixed $level * @param string $message - * @param array $context - * @return null + * @param array $context */ - public function log($level, $message, array $context = array()) { - foreach ($this->loggers as $logger){ - /* @var $logger LoggerInterface */ - $logger->log($level, $message, $context); - } + public function log($level, $message, array $context = array()) + { + foreach ($this->loggers as $logger) { + /* @var $logger LoggerInterface */ + $logger->log($level, $message, $context); + } } - } - -?> \ No newline at end of file