Passed
Push — master ( 03e071...62bcb6 )
by Jean-Christophe
11:00
created

Logger::inContext()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2.0625

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 3
c 1
b 0
f 0
dl 0
loc 5
ccs 3
cts 4
cp 0.75
rs 10
cc 2
nc 2
nop 2
crap 2.0625
1
<?php
2
3
namespace Ubiquity\log;
4
5
/**
6
 * Abstract class for logging
7
 * Ubiquity\log$Logger
8
 * This class is part of Ubiquity
9
 *
10
 * @author jcheron <[email protected]>
11
 * @version 1.0.3
12
 *
13
 */
14
abstract class Logger {
15
	/**
16
	 *
17
	 * @var Logger
18
	 */
19
	private static $instance;
20
	private static $test;
21
22 43
	private static function createLogger(&$config) {
23 43
		if (\is_callable ( $logger = $config ["logger"] )) {
24 42
			$instance = $logger ();
25
		} else {
26 1
			$instance = $config ["logger"];
27
		}
28 43
		if ($instance instanceof Logger) {
29 43
			self::$instance = $instance;
30
		}
31 43
	}
32
33
	abstract public function _registerError();
34
35
	public static function registerError() {
36
		self::$instance->_registerError ();
37
	}
38
39 1
	public static function inContext($contexts, $context) {
40 1
		if ($contexts === null) {
41
			return true;
42
		}
43 1
		return array_search ( $context, $contexts ) !== false;
44
	}
45
46 43
	public static function init(&$config) {
47 43
		if ($config ["debug"] === true && (self::$test = isset ( $config ["logger"] ))) {
48 43
			self::createLogger ( $config );
49
		}
50 43
	}
51
52 1
	public static function log($level, $context, $message, $part = null, $extra = null) {
53 1
		if (self::$test)
54 1
			self::$instance->_log ( $level, $context, $message, $part, $extra );
55 1
	}
56
57 89
	public static function info($context, $message, $part = null, $extra = null) {
58 89
		if (self::$test)
59 89
			self::$instance->_info ( $context, $message, $part, $extra );
60 89
	}
61
62 3
	public static function warn($context, $message, $part = null, $extra = null) {
63 3
		if (self::$test)
64 3
			self::$instance->_warn ( $context, $message, $part, $extra );
65 3
	}
66
67 1
	public static function error($context, $message, $part = null, $extra = null) {
68 1
		if (self::$test)
69 1
			self::$instance->_error ( $context, $message, $part, $extra );
70 1
	}
71
72 1
	public static function critical($context, $message, $part = null, $extra = null) {
73 1
		if (self::$test)
74 1
			self::$instance->_critical ( $context, $message, $part, $extra );
75 1
	}
76
77 1
	public static function alert($context, $message, $part = null, $extra = null) {
78 1
		if (self::$test)
79 1
			self::$instance->_alert ( $context, $message, $part, $extra );
80 1
	}
81
82 2
	public static function asObjects($reverse = true, $maxlines = 10, $contexts = null) {
83 2
		if (isset ( self::$instance ) && self::$test)
84 2
			return self::$instance->_asObjects ( $reverse, $maxlines, $contexts );
85
		return [ ];
86
	}
87
88 2
	public static function clearAll() {
89 2
		if (self::$test) {
90 2
			self::$instance->_clearAll ();
91
		}
92 2
	}
93
94 1
	public static function close() {
95 1
		if (self::$test) {
96 1
			self::$instance->_close ();
97
		}
98 1
	}
99
100
	abstract public function _log($level, $context, $message, $part, $extra);
101
102
	abstract public function _info($context, $message, $part, $extra);
103
104
	abstract public function _warn($context, $message, $part, $extra);
105
106
	abstract public function _error($context, $message, $part, $extra);
107
108
	abstract public function _critical($context, $message, $part, $extra);
109
110
	abstract public function _alert($context, $message, $part, $extra);
111
112
	abstract public function _asObjects($reverse = true, $maxlines = 10, $contexts = null);
113
114
	abstract public function _clearAll();
115
116
	abstract public function _close();
117
118 23
	public static function isActive() {
119 23
		return self::$test;
120
	}
121
}
122