Passed
Push — master ( 7c9d1c...02cc04 )
by Alexander
02:36
created

Logger   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 19
dl 0
loc 44
ccs 22
cts 22
cp 1
rs 10
c 0
b 0
f 0
wmc 8

4 Methods

Rating   Name   Duplication   Size   Complexity  
A dump() 0 3 1
A __construct() 0 3 1
A add() 0 19 5
A clear() 0 2 1
1
<?php
2
3
namespace Yiisoft\Mailer\SwiftMailer;
4
5
use Psr\Log\LoggerInterface;
6
use Psr\Log\LogLevel;
7
8
/**
9
 * Logger is a PSR-3 logger plugin for SwiftMailer.
10
 */
11
class Logger implements \Swift_Plugins_Logger
12
{
13
    /**
14
     * @var LoggerInterface $logger logger instance.
15
     */
16
    private $psrLogger;
17
18
    /**
19
     * @param LoggerInterface $logger
20
     */
21 11
    public function __construct(LoggerInterface $psrLogger)
22
    {
23 11
        $this->psrLogger = $psrLogger;
24 11
    }
25
26 5
    public function add($entry)
27
    {
28 5
        $categoryPrefix = substr($entry, 0, 2);
29
        switch ($categoryPrefix) {
30 5
            case '++':
31 1
                $level = LogLevel::DEBUG;
32 1
                break;
33 4
            case '>>':
34 3
            case '<<':
35 2
                $level = LogLevel::INFO;
36 2
                break;
37 2
            case '!!':
38 1
                $level = LogLevel::WARNING;
39 1
                break;
40
            default:
41 1
                $level = LogLevel::INFO;
42
        }
43
44 5
        $this->psrLogger->log($level, $entry, ['category' => __METHOD__]);
45 5
    }
46
47 1
    public function clear()
48
    {
49
        // do nothing
50 1
    }
51
52 1
    public function dump()
53
    {
54 1
        return '';
55
    }
56
}
57