1
|
|
|
<?php
|
|
|
|
|
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
|
|
|
|