Test Failed
Push — master ( 2ab532...05cdde )
by Jean-Christophe
06:27
created

UMonolog   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 13
eloc 24
dl 0
loc 58
c 0
b 0
f 0
rs 10

11 Methods

Rating   Name   Duplication   Size   Complexity  
A _critical() 0 2 1
A _info() 0 2 1
A _error() 0 2 1
A _log() 0 2 1
A __construct() 0 5 1
A _alert() 0 2 1
A _warn() 0 2 1
A _asObjects() 0 11 3
A _clearAll() 0 3 1
A addProcessor() 0 2 1
A createContext() 0 2 1
1
<?php
2
3
namespace Ubiquity\log\libraries;
4
5
use Ubiquity\log\Logger;
6
use Monolog\Handler\StreamHandler;
7
use Monolog\Formatter\JsonFormatter;
8
use Ubiquity\log\LogMessage;
9
use Ubiquity\utils\base\UFileSystem;
10
11
class UMonolog extends Logger{
12
	
13
	private $loggerInstance;
14
	private $handler;
15
	public function __construct($name,$level=\Monolog\Logger::INFO,$path='logs/app.log'){
16
		$this->loggerInstance = new \Monolog\Logger($name);
17
		$this->handler=new StreamHandler(ROOT.DS.$path,$level);
18
		$this->handler->setFormatter(new JsonFormatter());
19
		$this->loggerInstance->pushHandler($this->handler);
20
	}
21
	
22
	private function createContext($context,$part,$extra=null){
23
		return compact("context","part","extra");
24
	}
25
	
26
	public function addProcessor($callback){
27
		$this->loggerInstance->pushProcessor($callback);
28
	}
29
30
	public function _log($level,$context, $message,$part,$extra) {
31
		return $this->loggerInstance->log($level,$message,$this->createContext($context, $part,$extra));
32
	}
33
	
34
	public function _info($context, $message, $part,$extra) {
35
		return $this->loggerInstance->info($message,$this->createContext($context, $part,$extra));
36
	}
37
	
38
	public function _warn($context, $message,$part,$extra) {
39
		return $this->loggerInstance->warn($message,$this->createContext($context, $part,$extra));
40
	}
41
42
	public function _error($context, $message,$part,$extra) {
43
		return $this->loggerInstance->error($message,$this->createContext($context, $part,$extra));
44
	}
45
	public function _alert($context, $message, $part,$extra) {
46
		return $this->loggerInstance->alert($message,$this->createContext($context, $part,$extra));
47
	}
48
49
	public function _critical($context, $message, $part,$extra) {
50
		return $this->loggerInstance->critical($message,$this->createContext($context, $part,$extra));
51
	}
52
	
53
	public function _asObjects($reverse=true,$maxlines=10,$contexts=null){
54
		$objects=[];
0 ignored issues
show
Unused Code introduced by
The assignment to $objects is dead and can be removed.
Loading history...
55
		$objects=UFileSystem::getLines($this->handler->getUrl(),$reverse,$maxlines,function(&$objects,$line) use($contexts){
56
			$jso=json_decode($line);
57
			if($jso!==null){
58
				if(self::inContext($contexts, $jso->context->context)){
59
					LogMessage::addMessage($objects, new LogMessage($jso->message,$jso->context->context,$jso->context->part,$jso->level,$jso->datetime->date,$jso->context->extra));
60
				}
61
			}
62
		});
63
		return $objects;
64
	}
65
	
66
	public function _clearAll(){
67
		$this->handler->close();
68
		UFileSystem::deleteFile($this->handler->getUrl());
69
	}
70
71
72
}
73
74