forked from easy-swoole/easyswoole
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLogger.php
81 lines (64 loc) · 1.84 KB
/
Logger.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
/**
* Created by PhpStorm.
* User: yf
* Date: 2018/8/14
* Time: 下午6:15
*/
namespace EasySwoole\EasySwoole;
use EasySwoole\Component\Event;
use EasySwoole\Component\Singleton;
use EasySwoole\Log\LoggerInterface;
class Logger implements LoggerInterface
{
private $logger;
private $callback;
private $logConsole = true;
use Singleton;
function __construct(LoggerInterface $logger)
{
$this->logger = $logger;
$this->callback = new Event();
}
public function setLogConsole(bool $is)
{
$this->logConsole = $is;
return $this;
}
public function log(?string $msg,int $logLevel = self::LOG_LEVEL_INFO,string $category = 'debug'):string
{
$str = $this->logger->log($msg,$logLevel,$category);
$calls = $this->callback->all();
foreach ($calls as $call){
call_user_func($call,$msg,$logLevel,$category);
}
return $str;
}
public function console(?string $msg,int $logLevel = self::LOG_LEVEL_INFO,string $category = 'debug')
{
$this->logger->console($msg,$logLevel,$category);
if($this->logConsole){
$this->log($msg,$logLevel,$category);
}
}
public function info(?string $msg,string $category = 'debug')
{
$this->console($msg,self::LOG_LEVEL_INFO,$category);
}
public function notice(?string $msg,string $category = 'debug')
{
$this->console($msg,self::LOG_LEVEL_NOTICE,$category);
}
public function waring(?string $msg,string $category = 'debug')
{
$this->console($msg,self::LOG_LEVEL_WARNING,$category);
}
public function error(?string $msg,string $category = 'debug')
{
$this->console($msg,self::LOG_LEVEL_ERROR,$category);
}
public function onLog():Event
{
return $this->callback;
}
}