Skip to content

Commit

Permalink
Big cleanup + adding a addLogger method.
Browse files Browse the repository at this point in the history
  • Loading branch information
moufmouf committed Apr 7, 2016
1 parent 5852802 commit e3a7ecf
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 35 deletions.
38 changes: 31 additions & 7 deletions README.md
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);
```
64 changes: 36 additions & 28 deletions src/Mouf/Utils/Log/Psr/MultiLogger.php
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);
}
}

}

?>

0 comments on commit e3a7ecf

Please sign in to comment.