Logger   A
last analyzed

Complexity

Total Complexity 10

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 10
lcom 1
cbo 4
dl 0
loc 57
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A log() 0 5 1
B psr2yii() 0 21 9
1
<?php
2
3
namespace gladyshev\yii\rucaptcha;
4
5
use Psr\Log\LoggerInterface;
6
use Psr\Log\LoggerTrait;
7
use Psr\Log\LogLevel;
8
use Yii;
9
use yii\base\Object;
10
use yii\log\Logger as YiiLogger;
11
12
/**
13
 * Class Logger
14
 *
15
 * @author Dmitry Gladyshev <[email protected]>
16
 * @since 2.0
17
 */
18
class Logger extends Object implements LoggerInterface
19
{
20
    use LoggerTrait;
21
22
    /**
23
     * @var string
24
     */
25
    public $category = 'rucaptcha';
26
27
    /**
28
     * @var callable
29
     */
30
    public $levelTranslator = ['\gladyshev\yii\rucaptcha\Logger', 'psr2yii'];
31
32
    /**
33
     * Logs with an arbitrary level.
34
     *
35
     * @param mixed $level
36
     * @param string $message
37
     * @param array $context
38
     *
39
     * @return void
40
     */
41
    public function log($level, $message, array $context = [])
42
    {
43
        $level = call_user_func($this->levelTranslator, $level);
44
        Yii::getLogger()->log($message, $level, $this->category);
45
    }
46
47
    /**
48
     * Translate psr to yii log levels.
49
     *
50
     * @param $psrLevel
51
     * @return int
52
     */
53
    public static function psr2yii($psrLevel)
54
    {
55
        switch ($psrLevel) {
56
            case LogLevel::EMERGENCY:
57
            case LogLevel::NOTICE:
58
            case LogLevel::ALERT:
59
            case LogLevel::WARNING:
60
                return YiiLogger::LEVEL_WARNING;
61
62
            case LogLevel::CRITICAL:
63
            case LogLevel::ERROR:
64
                return YiiLogger::LEVEL_ERROR;
65
66
            case LogLevel::INFO:
67
                return YiiLogger::LEVEL_INFO;
68
69
            case LogLevel::DEBUG:
70
            default:
71
                return YiiLogger::LEVEL_TRACE;
72
        }
73
    }
74
}
75