Passed
Push — master ( 01ad3a...c5e11d )
by Jean-Christophe
05:40
created

Logger::init()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 3

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 3
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 3
nc 2
nop 1
crap 3
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.1
12
 *
13
 */
14
abstract class Logger {
15
	/**
16
	 *
17
	 * @var Logger
18
	 */
19
	private static $instance;
20
	private static $test;
21
22 19
	private static function createLogger(&$config) {
23 19
		if (is_callable ( $logger = $config ["logger"] )) {
24 19
			$instance = $logger ();
25
		} else {
26
			$instance = $config ["logger"];
27
		}
28 19
		if ($instance instanceof Logger) {
29 19
			self::$instance = $instance;
30
		}
31 19
	}
32
33 1
	public static function inContext($contexts, $context) {
34 1
		if ($contexts === null) {
35 1
			return true;
36
		}
37
		return array_search ( $context, $contexts ) !== false;
38
	}
39
40 19
	public static function init(&$config) {
41 19
		if ((self::$test = isset ( $config ["logger"] )) && $config ["debug"] === true) {
42 19
			self::createLogger ( $config );
43
		}
44 19
	}
45
46
	public static function log($level, $context, $message, $part = null, $extra = null) {
47
		if (self::$test)
48
			return self::$instance->_log ( $level, $context, $message, $part, $extra );
49
	}
50
51 46
	public static function info($context, $message, $part = null, $extra = null) {
52 46
		if (self::$test)
53 46
			return self::$instance->_info ( $context, $message, $part, $extra );
54
	}
55
56 25
	public static function warn($context, $message, $part = null, $extra = null) {
57 25
		if (self::$test)
58 25
			return self::$instance->_warn ( $context, $message, $part, $extra );
59
	}
60
61 1
	public static function error($context, $message, $part = null, $extra = null) {
62 1
		if (self::$test)
63 1
			return self::$instance->_error ( $context, $message, $part, $extra );
64
	}
65
66
	public static function critical($context, $message, $part = null, $extra = null) {
67
		if (self::$test)
68
			return self::$instance->_critical ( $context, $message, $part, $extra );
69
	}
70
71
	public static function alert($context, $message, $part = null, $extra = null) {
72
		if (self::$test)
73
			return self::$instance->_alert ( $context, $message, $part, $extra );
74
	}
75
76 1
	public static function asObjects($reverse = true, $maxlines = 10, $contexts = null) {
77 1
		if (self::$test)
78 1
			return self::$instance->_asObjects ( $reverse, $maxlines, $contexts );
79
		return [ ];
80
	}
81
82
	public static function clearAll() {
83
		if (self::$test) {
84
			self::$instance->_clearAll ();
85
		}
86
	}
87
88
	abstract public function _log($level, $context, $message, $part, $extra);
89
90
	abstract public function _info($context, $message, $part, $extra);
91
92
	abstract public function _warn($context, $message, $part, $extra);
93
94
	abstract public function _error($context, $message, $part, $extra);
95
96
	abstract public function _critical($context, $message, $part, $extra);
97
98
	abstract public function _alert($context, $message, $part, $extra);
99
100
	abstract public function _asObjects($reverse = true, $maxlines = 10, $contexts = null);
101
102
	abstract public function _clearAll();
103
}
104