Failed Conditions
Push — master ( c6c43f...4678b5 )
by Maximo
03:05
created

library/Providers/LoggerProvider.php (1 issue)

1
<?php
0 ignored issues
show
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 8
    public function register(DiInterface $container)
25
    {
26 8
        $config = $container->getShared('config');
27
28 8
        $container->setShared(
29 8
            'log',
30
            function () use ($config) {
31
                /** @var string $logName */
32 8
                $logName = envValue('LOGGER_DEFAULT_FILENAME', 'api.log');
33
                /** @var string $logPath */
34 8
                $logPath = envValue('LOGGER_DEFAULT_PATH', 'storage/logs');
35 8
                $logFile = appPath($logPath) . '/' . $logName . '.log';
36
37 8
                $formatter = new LineFormatter("[%datetime%][%level_name%] %message%\n");
38
39 8
                $logger = new Logger('api-logger');
40
41 8
                $handler = new StreamHandler($logFile, Logger::DEBUG);
42 8
                $handler->setFormatter($formatter);
43
              
44
                //only run logs in production
45 8
                if ($config->app->logsReport) {
46
                    //sentry logger
47
                    $client = new Raven_Client('https://' . getenv('SENTRY_RPOJECT_SECRET') . '@sentry.io/' . getenv('SENTRY_PROJECT_ID'));
48
                    $handlerSentry = new RavenHandler($client, Logger::ERROR);
49
                    $handlerSentry->setFormatter(new LineFormatter("%message% %context% %extra%\n"));
50
                    $logger->pushHandler($handlerSentry);
51
                }
52
53 8
                $logger->pushHandler($handler);
54
55 8
                return $logger;
56 8
            }
57
        );
58 8
    }
59
}
60