Test Failed
Push — master ( b4c459...c223c8 )
by Maximo
02:08
created

LoggerProvider   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 16
dl 0
loc 34
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A register() 0 27 1
1
<?php
0 ignored issues
show
Coding Style introduced by
End of line character is invalid; expected "\n" but found "\r\n"
Loading history...
2
3
declare(strict_types=1);
4
5
namespace Gewaer\Providers;
6
7
use function Gewaer\Core\appPath;
8
use function Gewaer\Core\envValue;
9
use Monolog\Formatter\LineFormatter;
10
use Monolog\Handler\StreamHandler;
11
use Monolog\Logger;
12
use Phalcon\Di\ServiceProviderInterface;
13
use Phalcon\DiInterface;
14
use Raven_Client;
15
use Monolog\Handler\RavenHandler;
16
17
class LoggerProvider implements ServiceProviderInterface
18
{
19
    /**
20
     * Registers the logger component
21
     *
22
     * @param DiInterface $container
23
     */
24
    public function register(DiInterface $container)
25
    {
26
        $container->setShared(
27
            'log',
28
            function () {
29
                /** @var string $logName */
30
                $logName = envValue('LOGGER_DEFAULT_FILENAME', 'api.log');
31
                /** @var string $logPath */
32
                $logPath = envValue('LOGGER_DEFAULT_PATH', 'storage/logs');
33
                $logFile = appPath($logPath) . '/' . $logName . '.log';
34
35
                $formatter = new LineFormatter("[%datetime%][%level_name%] %message%\n");
36
37
                $logger = new Logger('api-logger');
38
39
                $handler = new StreamHandler($logFile, Logger::DEBUG);
40
                $handler->setFormatter($formatter);
41
42
                //sentry logger
43
                $client = new Raven_Client('https://' . getenv('SENTRY_RPOJECT_SECRET') . '@sentry.io/' . getenv('SENTRY_PROJECT_ID'));
44
                $handlerSentry = new RavenHandler($client, Logger::ERROR);
45
                $handlerSentry->setFormatter(new LineFormatter("%message% %context% %extra%\n"));
46
47
                $logger->pushHandler($handler);
48
                $logger->pushHandler($handlerSentry);
49
50
                return $logger;
51
            }
52
        );
53
    }
54
}
55