Completed
Push — dev-master ( 8ed987...1e9198 )
by Derek Stephen
04:46
created

LoggerFactory   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 2
dl 0
loc 25
ccs 10
cts 10
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A createLoggers() 0 16 3
1
<?php
2
3
namespace Bone\Service;
4
5
use InvalidArgumentException;
6
use Monolog\Handler\StreamHandler;
7
use Monolog\Logger;
8
9
class LoggerFactory
10
{
11
    /**
12
     * @param array $config
13
     * @return Logger[]
14
     * @throws \Exception
15
     */
16 2
    public function createLoggers(array $config): array
17 2
    {
18 2
        $logChannels = [];
19
20 2
        if (!array_key_exists('channels', $config)) {
21 1
            throw new InvalidArgumentException('You must have a channels array config');
22
        }
23
24 1
        foreach ($config['channels'] as $name => $path) {
25 1
            $logger = new Logger($name);
26 1
            $logger->pushHandler(new StreamHandler($path, Logger::DEBUG));
27 1
            $logChannels[$name] = $logger;
28
        }
29
30 1
        return $logChannels;
31
    }
32
33
}