LoggerAdapter::log()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
ccs 0
cts 0
cp 0
rs 10
cc 1
nc 1
nop 3
crap 2
1
<?php
2
3
namespace WebStream\Log;
4
5
use Psr\Log\LoggerInterface;
6
use Psr\Log\LoggerTrait;
7
8
/**
9
 * LoggerAdapterクラス
10
 * PSR-3実装のロガーをWebStreamロガーに委譲
11
 * @author Ryuichi Tanaka
12
 * @since 2015/12/03
13
 * @version 0.7
14
 */
15
class LoggerAdapter implements LoggerInterface
16
{
17
    use LoggerTrait;
18
19
    /**
20
     * @var Logger ロガーインスタンス
21
     */
22
    private Logger $logger;
23 141
24
    /**
25 141
     * コンストラクタ
26 141
     * @param Logger $logger ロガー
27
     */
28
    public function __construct(Logger $logger)
29
    {
30
        $this->logger = $logger;
31
    }
32
33 22
    /**
34
     * PSR-3ロガーに定義されていないログレベルの呼び出しを受ける
35 22
     * @param string $name ログレベル
36 22
     * @param array $arguments 引数
37 22
     */
38
    public function __call(string $name, array $arguments)
39
    {
40 22
        $message = null;
41
        if (array_key_exists(0, $arguments)) {
42
            $message = $arguments[0];
43 22
        }
44
45 22
        if (array_key_exists(1, $arguments)) {
46
            $this->log($name, $message, $arguments[1]);
47
        } else {
48
            $this->log($name, $message, []);
49
        }
50
    }
51
52
    /**
53 141
     * Logs with an arbitrary level.
54
     * @param mixed $level ログレベル
55 141
     * @param mixed $message メッセージ
56 141
     * @param array $context 埋め込み値リスト
57
     */
58
    public function log($level, $message, array $context = []): void
59
    {
60
        $this->logger->write($level, $message, $context);
61
    }
62
63
    /**
64
     * 遅延書き出しを有効にする
65
     */
66
    public function enableLazyWrite()
67
    {
68
        $this->logger->lazyWrite();
69 1
    }
70
71 1
    /**
72 1
     * 即時書き出しを有効にする
73
     */
74
    public function enableDirectWrite()
75
    {
76
        $this->logger->directWrite();
77
    }
78
}
79