MultiLogger   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 28
rs 10
c 0
b 0
f 0
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A flush() 0 3 2
A log() 0 3 2
A __construct() 0 2 1
1
<?php declare( strict_types=1 );
2
3
namespace BotRiconferme\Logger;
4
5
use Psr\Log\AbstractLogger;
6
7
/**
8
 * Proxies calls to multiple loggers
9
 */
10
class MultiLogger extends AbstractLogger implements IFlushingAwareLogger {
11
	/** @var IFlushingAwareLogger[] */
12
	private $loggers;
13
14
	/**
15
	 * @param IFlushingAwareLogger ...$loggers
16
	 */
17
	public function __construct( IFlushingAwareLogger ...$loggers ) {
18
		$this->loggers = $loggers;
19
	}
20
21
	/**
22
	 * @inheritDoc
23
	 * @param mixed[] $context
24
	 * @suppress PhanUnusedPublicMethodParameter
25
	 */
26
	public function log( $level, $message, array $context = [] ): void {
27
		foreach ( $this->loggers as $logger ) {
28
			$logger->log( $level, $message );
29
		}
30
	}
31
32
	/**
33
	 * @inheritDoc
34
	 */
35
	public function flush(): void {
36
		foreach ( $this->loggers as $logger ) {
37
			$logger->flush();
38
		}
39
	}
40
}
41