Completed
Pull Request — master (#3)
by Adam
04:56
created

LoggerConfiguration   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 3
c 1
b 0
f 1
lcom 1
cbo 5
dl 0
loc 41
ccs 14
cts 14
cp 1
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A apply() 0 6 1
A prepareExceptionLogger() 0 10 1
1
<?php
2
3
namespace Equip\Configuration;
4
5
use Auryn\Injector;
6
use Monolog\Formatter\LineFormatter;
7
use Monolog\Handler\SyslogHandler;
8
use Equip\Env;
9
use Equip\Handler\ExceptionHandler;
10
use Equip\Logger\ExceptionLogger;
11
12
class LoggerConfiguration implements ConfigurationInterface
13
{
14
    /**
15
     * @var Env
16
     */
17
    protected $env;
18
19
    /**
20
     * @param Env $env
21
     */
22 12
    public function __construct(Env $env)
23
    {
24 12
        $this->env = $env;
25 12
    }
26
27
    /**
28
     * @inheritDoc
29
     */
30 12
    public function apply(Injector $injector)
31
    {
32 12
        $injector->prepare(ExceptionLogger::class, [$this, 'prepareExceptionLogger']);
33
34 12
        $injector->define(ExceptionHandler::class, ['logger' => ExceptionLogger::class]);
35 12
    }
36
37
    /**
38
     * @param ExceptionLogger $logger
39
     *
40
     * @return void
41
     */
42 12
    public function prepareExceptionLogger(ExceptionLogger $logger)
43
    {
44 12
        $formatter = new LineFormatter;
45 12
        $formatter->includeStacktraces();
46
47 12
        $handler = new SyslogHandler($this->env->getValue('log.exception.syslog', 'spark'));
48 12
        $handler->setFormatter($formatter);
49
50 12
        $logger->pushHandler($handler);
51 12
    }
52
}
53