-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Big cleanup + adding a addLogger method.
- Loading branch information
Showing
2 changed files
with
67 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,37 @@ | ||
What is this package | ||
==================== | ||
|
||
<div class="alert"><strong>DEPRECATED!</strong> Warning, this package is deprecated in favor of | ||
<em>mouf/utils.log.psr.errorlog_logger</em> that implements the same logger, but with PSR-3 | ||
compatibility.</div> | ||
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); | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,48 +1,56 @@ | ||
<?php | ||
|
||
/* | ||
* Copyright (c) 2013 David Negrier | ||
* | ||
* Copyright (c) 2013-2016 David Negrier | ||
* | ||
* See the file LICENSE.txt for copying permission. | ||
*/ | ||
|
||
namespace Mouf\Utils\Log\Psr; | ||
|
||
use Psr\Log\LoggerInterface; | ||
use Psr\Log\LogLevel; | ||
use Psr\Log\AbstractLogger; | ||
|
||
/** | ||
* A logger class that writes messages into the php error_log. | ||
* A logger class that aggregates several PSR-3 compliant loggers together. | ||
*/ | ||
class MultiLogger extends AbstractLogger { | ||
|
||
/** | ||
* @var LoggerInterface[] $loggers | ||
*/ | ||
private $loggers; | ||
|
||
/** | ||
* @param LoggerInterface[] $loggers | ||
*/ | ||
public function __construct($loggers){ | ||
$this->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); | ||
} | ||
} | ||
|
||
} | ||
|
||
?> |