HasLevelsTrait::level()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2.032

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 2
eloc 4
c 1
b 0
f 1
nc 2
nop 1
dl 0
loc 9
rs 10
ccs 4
cts 5
cp 0.8
crap 2.032
1
<?php
2
3
namespace Nip\Logger\Manager;
4
5
use Monolog\Logger as Monolog;
6
use Psr\Log\InvalidArgumentException;
7
8
/**
9
 * Trait HasLevelsTrait
10
 * @package Nip\Logger\Traits
11
 */
12
trait HasLevelsTrait
13
{
14
15
    /**
16
     * Map native PHP errors to level.
17
     *
18
     * @var array
19
     * @deprecated variable deprecated
20
     */
21
    public static $errorLevelMap = [
22
        E_NOTICE => Monolog::NOTICE,
23
        E_USER_NOTICE => Monolog::NOTICE,
24
        E_WARNING => Monolog::WARNING,
25
        E_CORE_WARNING => Monolog::WARNING,
26
        E_USER_WARNING => Monolog::WARNING,
27
        E_ERROR => Monolog::WARNING,
28
        E_USER_ERROR => Monolog::ERROR,
29
        E_CORE_ERROR => Monolog::ERROR,
30
        E_RECOVERABLE_ERROR => Monolog::ERROR,
31
        E_PARSE => Monolog::ERROR,
32
        E_COMPILE_ERROR => Monolog::ERROR,
33
        E_COMPILE_WARNING => Monolog::ERROR,
34
        E_STRICT => Monolog::DEBUG,
35
        E_DEPRECATED => Monolog::DEBUG,
36
        E_USER_DEPRECATED => Monolog::DEBUG,
37
    ];
38
39
    /**
40
     * The Log levels.
41
     *
42
     * @var array
43
     */
44
    protected $levels = [
45
        'debug' => Monolog::DEBUG,
46
        'info' => Monolog::INFO,
47
        'notice' => Monolog::NOTICE,
48
        'warning' => Monolog::WARNING,
49
        'error' => Monolog::ERROR,
50
        'critical' => Monolog::CRITICAL,
51
        'alert' => Monolog::ALERT,
52
        'emergency' => Monolog::EMERGENCY,
53
    ];
54
55
    /**
56
     * Parse the string level into a Monolog constant.
57
     *
58
     * @param array $config
59
     * @return int
60
     *
61
     * @throws \InvalidArgumentException
62
     */
63 4
    protected function level(array $config)
64
    {
65 4
        $level = $config['level'] ?? 'debug';
66
67 4
        if (isset($this->levels[$level])) {
68 4
            return $this->levels[$level];
69
        }
70
71
        throw new InvalidArgumentException('Invalid log level.');
72
    }
73
}
74