Passed
Push — master ( 9ec1b2...596585 )
by Juuso
03:58
created

Yii2LogMessage::getContext()   A

Complexity

Conditions 4
Paths 8

Size

Total Lines 18
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 4

Importance

Changes 0
Metric Value
dl 0
loc 18
ccs 9
cts 9
cp 1
rs 9.2
c 0
b 0
f 0
cc 4
eloc 9
nc 8
nop 0
crap 4
1
<?php
2
3
declare(strict_types=1);
4
5
namespace leinonen\Yii2Monolog;
6
7
use yii\log\Logger;
8
use Psr\Log\LogLevel;
9
10
class Yii2LogMessage
11
{
12
    /**
13
     * @var string
14
     */
15
    private $category;
16
17
    /**
18
     * @var array
19
     */
20
    private $trace;
21
22
    /**
23
     * @var int
24
     */
25
    private $memory;
26
27
    /**
28
     * @var string
29
     */
30
    private $message;
31
32
    /**
33
     * @var int
34
     */
35
    private $timestamp;
36
37
    /**
38
     * @var int|mixed
39
     */
40
    private $yiiLogLevel;
41
42
    /**
43
     * Initializes a new Yii2LogMessage.
44
     *
45
     * @param array $message
46
     */
47 9
    public function __construct(array $message)
48
    {
49 9
        $this->message = $message[0];
50 9
        $this->yiiLogLevel = $message[1];
51
52 9
        if (isset($message[2])) {
53 9
            $this->category = $message[2];
54
        }
55
56 9
        $this->timestamp = $message[3];
57
58 9
        if (isset($message[4])) {
59 8
            $this->trace = $message[4];
60
        }
61
62 9
        if (isset($message[5])) {
63 9
            $this->memory = $message[5];
64
        }
65 9
    }
66
67
    /**
68
     * Returns the message string.
69
     *
70
     * @return string
71
     */
72 2
    public function getMessage()
73
    {
74 2
        return $this->message;
75
    }
76
77
    /**
78
     * Returns the timestamp for the Yii2LogMessage.
79
     *
80
     * @return int
81
     */
82 1
    public function getTimestamp()
83
    {
84 1
        return $this->timestamp;
85
    }
86
87
    /**
88
     * Returns the context for the Yii2LogMessage.
89
     *
90
     * @return array
91
     */
92 2
    public function getContext()
93
    {
94 2
        $context = [];
95
96 2
        if ($this->category !== null) {
97 2
            $context['category'] = $this->category;
98
        }
99
100 2
        if ($this->trace !== null) {
101 1
            $context['trace'] = $this->trace;
102
        }
103
104 2
        if ($this->memory !== null) {
105 2
            $context['memory'] = $this->memory;
106
        }
107
108 2
        return $context;
109
    }
110
111
    /**
112
     * Returns the PSR-3 compliant log level.
113
     *
114
     * @return int
115
     */
116 8
    public function getPsr3LogLevel()
117
    {
118
        $psrLevels = [
119 8
            Logger::LEVEL_ERROR => LogLevel::ERROR,
120
            Logger::LEVEL_WARNING => LogLevel::WARNING,
121
            Logger::LEVEL_INFO => LogLevel::INFO,
122
            Logger::LEVEL_TRACE => LogLevel::DEBUG,
123
            Logger::LEVEL_PROFILE => LogLevel::DEBUG,
124
            Logger::LEVEL_PROFILE_BEGIN => LogLevel::DEBUG,
125
            Logger::LEVEL_PROFILE_END => LogLevel::DEBUG,
126
        ];
127
128 8
        return $psrLevels[$this->yiiLogLevel];
129
    }
130
}
131