LoggerHelper::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 3
ccs 0
cts 1
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 2
1
<?php
2
declare(strict_types = 1);
3
4
namespace BrowscapPHP\Helper;
5
6
use Monolog\ErrorHandler;
7
use Monolog\Handler\PsrHandler;
8
use Monolog\Logger;
9
use Monolog\Processor\MemoryPeakUsageProcessor;
10
use Monolog\Processor\MemoryUsageProcessor;
11
use Psr\Log\LoggerInterface;
12
use Symfony\Component\Console\Logger\ConsoleLogger;
13
use Symfony\Component\Console\Output\OutputInterface;
14
15
/**
16
 * Class LoggerHelper
17
 */
18
final class LoggerHelper
19
{
20
    private function __construct()
21
    {
22
    }
23
24
    /**
25
     * creates a \Monolog\Logger instance
26
     *
27
     * @param \Symfony\Component\Console\Output\OutputInterface $output
28
     *
29
     * @return LoggerInterface
30
     */
31
    public static function createDefaultLogger(OutputInterface $output) : LoggerInterface
32 1
    {
33
        $logger = new Logger('browscap');
34 1
        $consoleLogger = new ConsoleLogger($output);
35 1
        $psrHandler = new PsrHandler($consoleLogger);
36 1
37
        $logger->pushHandler($psrHandler);
38 1
39 1
        /** @var callable $memoryProcessor */
40
        $memoryProcessor = new MemoryUsageProcessor(true);
41
        $logger->pushProcessor($memoryProcessor);
42 1
43 1
        /** @var callable $peakMemoryProcessor */
44
        $peakMemoryProcessor = new MemoryPeakUsageProcessor(true);
45
        $logger->pushProcessor($peakMemoryProcessor);
46 1
47 1
        ErrorHandler::register($logger);
48
49 1
        return $logger;
50
    }
51
}
52