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

LoggerFactory::createLoggers()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 3

Importance

Changes 0
Metric Value
dl 0
loc 16
ccs 10
cts 10
cp 1
rs 9.7333
c 0
b 0
f 0
cc 3
nc 3
nop 1
crap 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
}