LoggerHelper   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 85.71%

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 0
dl 0
loc 34
ccs 12
cts 14
cp 0.8571
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A createDefaultLogger() 0 20 1
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