Passed
Push — master ( 63beec...7c9d1c )
by Alexander
01:40
created

Logger::add()   A

Complexity

Conditions 5
Paths 5

Size

Total Lines 19
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 5.4742

Importance

Changes 0
Metric Value
cc 5
eloc 15
nc 5
nop 1
dl 0
loc 19
ccs 11
cts 15
cp 0.7332
crap 5.4742
rs 9.4555
c 0
b 0
f 0
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
    }
25
26 5
    public function add($entry)
27
    {
28 5
        $categoryPrefix = substr($entry, 0, 2);
29 5
        switch ($categoryPrefix) {
30
            case '++':
31 1
                $level = LogLevel::DEBUG;
32 1
                break;
33
            case '>>':
34
            case '<<':
35 2
                $level = LogLevel::INFO;
36 2
                break;
37
            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
    }
46
47
    public function clear()
48
    {
49
        // do nothing
50
    }
51
52 1
    public function dump()
53
    {
54 1
        return '';
55
    }
56
}
57