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 |