Passed
Pull Request — master (#133)
by Rustam
03:14
created

LoggerInterfaceProxy   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 91
Duplicated Lines 0 %

Test Coverage

Coverage 90.24%

Importance

Changes 0
Metric Value
wmc 10
eloc 40
dl 0
loc 91
ccs 37
cts 41
cp 0.9024
rs 10
c 0
b 0
f 0

10 Methods

Rating   Name   Duplication   Size   Complexity  
A debug() 0 6 1
A alert() 0 6 1
A emergency() 0 11 1
A warning() 0 6 1
A critical() 0 11 1
A log() 0 6 1
A info() 0 6 1
A __construct() 0 4 1
A notice() 0 6 1
A error() 0 6 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Yii\Debug\Collector;
6
7
use Psr\Log\LoggerInterface;
8
use Psr\Log\LogLevel;
9
use Stringable;
10
11
final class LoggerInterfaceProxy implements LoggerInterface
12
{
13
    private LoggerInterface $logger;
14
    private LogCollector $collector;
15
16 16
    public function __construct(LoggerInterface $logger, LogCollector $collector)
17
    {
18 16
        $this->logger = $logger;
19 16
        $this->collector = $collector;
20
    }
21
22 1
    public function emergency(string|Stringable $message, array $context = []): void
23
    {
24 1
        [$callStack] = debug_backtrace();
25
26 1
        $this->collector->collect(
27
            LogLevel::EMERGENCY,
28
            $message,
29
            $context,
30 1
            $callStack['file'] . ':' . $callStack['line']
31
        );
32 1
        $this->logger->emergency($message, $context);
33
    }
34
35 1
    public function alert(string|Stringable $message, array $context = []): void
36
    {
37 1
        [$callStack] = debug_backtrace();
38
39 1
        $this->collector->collect(LogLevel::ALERT, $message, $context, $callStack['file'] . ':' . $callStack['line']);
40 1
        $this->logger->alert($message, $context);
41
    }
42
43 1
    public function critical(string|Stringable $message, array $context = []): void
44
    {
45 1
        [$callStack] = debug_backtrace();
46
47 1
        $this->collector->collect(
48
            LogLevel::CRITICAL,
49
            $message,
50
            $context,
51 1
            $callStack['file'] . ':' . $callStack['line']
52
        );
53 1
        $this->logger->critical($message, $context);
54
    }
55
56 1
    public function error(string|Stringable $message, array $context = []): void
57
    {
58 1
        [$callStack] = debug_backtrace();
59
60 1
        $this->collector->collect(LogLevel::ERROR, $message, $context, $callStack['file'] . ':' . $callStack['line']);
61 1
        $this->logger->error($message, $context);
62
    }
63
64 1
    public function warning(string|Stringable $message, array $context = []): void
65
    {
66 1
        [$callStack] = debug_backtrace();
67
68 1
        $this->collector->collect(LogLevel::WARNING, $message, $context, $callStack['file'] . ':' . $callStack['line']);
69 1
        $this->logger->warning($message, $context);
70
    }
71
72
    public function notice(string|Stringable $message, array $context = []): void
73
    {
74
        [$callStack] = debug_backtrace();
75
76
        $this->collector->collect(LogLevel::NOTICE, $message, $context, $callStack['file'] . ':' . $callStack['line']);
77
        $this->logger->notice($message, $context);
78
    }
79
80 1
    public function info(string|Stringable $message, array $context = []): void
81
    {
82 1
        [$callStack] = debug_backtrace();
83
84 1
        $this->collector->collect(LogLevel::INFO, $message, $context, $callStack['file'] . ':' . $callStack['line']);
85 1
        $this->logger->info($message, $context);
86
    }
87
88 1
    public function debug(string|Stringable $message, array $context = []): void
89
    {
90 1
        [$callStack] = debug_backtrace();
91
92 1
        $this->collector->collect(LogLevel::DEBUG, $message, $context, $callStack['file'] . ':' . $callStack['line']);
93 1
        $this->logger->debug($message, $context);
94
    }
95
96 8
    public function log(mixed $level, string|Stringable $message, array $context = []): void
97
    {
98 8
        [$callStack] = debug_backtrace();
99
100 8
        $this->collector->collect($level, $message, $context, $callStack['file'] . ':' . $callStack['line']);
101 8
        $this->logger->log($level, $message, $context);
102
    }
103
}
104