Completed
Pull Request — master (#3)
by Adam
11:06 queued 01:37
created

LoggerConfiguration::apply()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 6
ccs 4
cts 4
cp 1
rs 9.4286
cc 1
eloc 3
nc 1
nop 1
crap 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