Passed
Push — master ( 3d4f1f...2a2d37 )
by Daimona
01:36
created

MultiLogger::flush()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 2
nc 2
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php declare( strict_types=1 );
2
3
namespace BotRiconferme\Logger;
4
5
use Psr\Log\AbstractLogger;
6
use Psr\Log\LoggerInterface;
7
8
/**
9
 * Proxies calls to multiple loggers
10
 */
11
class MultiLogger extends AbstractLogger implements IFlushingAwareLogger {
12
	/** @var IFlushingAwareLogger[] */
13
	private $loggers = [];
14
15
	/**
16
	 * @param IFlushingAwareLogger ...$loggers
17
	 */
18
	public function __construct( IFlushingAwareLogger ...$loggers ) {
19
		$this->loggers = $loggers;
20
	}
21
22
	/**
23
	 * @inheritDoc
24
	 * @suppress PhanUnusedPublicMethodParameter
25
	 */
26
	public function log( $level, $message, array $context = [] ) {
27
		foreach ( $this->loggers as $logger ) {
28
			$logger->log( $level, $message );
0 ignored issues
show
Bug introduced by
The method log() does not exist on BotRiconferme\Logger\IFlushingAwareLogger. Since it exists in all sub-types, consider adding an abstract or default implementation to BotRiconferme\Logger\IFlushingAwareLogger. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

28
			$logger->/** @scrutinizer ignore-call */ 
29
            log( $level, $message );
Loading history...
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