LogServiceProvider   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 0
Metric Value
dl 0
loc 39
rs 10
c 0
b 0
f 0
wmc 2
lcom 0
cbo 5

1 Method

Rating   Name   Duplication   Size   Complexity  
B register() 0 26 2
1
<?php
2
3
namespace Ps2alerts\Api\ServiceProvider;
4
5
use League\Container\ServiceProvider\AbstractServiceProvider;
6
use Monolog\Logger;
7
use Monolog\Handler\StreamHandler;
8
use Monolog\Handler\SlackHandler;
9
10
class LogServiceProvider extends AbstractServiceProvider
11
{
12
    /**
13
     * @var array
14
     */
15
    protected $provides = [
16
        'Monolog\Logger',
17
    ];
18
19
    /**
20
     * {@inheritdoc}
21
     */
22
    public function register()
23
    {
24
        $this->getContainer()->share('Monolog\Logger', function () {
25
            $log = new Logger('app');
26
27
            $config = $this->getContainer()->get('config');
28
29
            // Add slack for monitoring of critical errors
30
            if ($config['logger'] === 'slack') {
31
                $slackHandler = new SlackHandler(
32
                    $config['slack_api'],
33
                    $config['slack_channel'],
34
                    $config['slack_bot_name']
35
                );
36
                $slackHandler->setLevel(\Monolog\Logger::ERROR);
37
38
                $log->pushHandler($slackHandler);
39
            }
40
41
            $log->pushHandler(
42
                new StreamHandler(__DIR__ . '/../../logs/app.log', Logger::DEBUG)
43
            );
44
45
            return $log;
46
        });
47
    }
48
}
49