]>
Commit | Line | Data |
---|---|---|
889a5f9f AD |
1 | <?php |
2 | class Logger { | |
b367c951 AD |
3 | private static $instance; |
4 | private $adapter; | |
889a5f9f | 5 | |
4e53956a AD |
6 | public static $errornames = array( |
7 | 1 => 'E_ERROR', | |
889a5f9f | 8 | 2 => 'E_WARNING', |
e2261e17 | 9 | 4 => 'E_PARSE', |
889a5f9f | 10 | 8 => 'E_NOTICE', |
e2261e17 AD |
11 | 16 => 'E_CORE_ERROR', |
12 | 32 => 'E_CORE_WARNING', | |
13 | 64 => 'E_COMPILE_ERROR', | |
14 | 128 => 'E_COMPILE_WARNING', | |
889a5f9f AD |
15 | 256 => 'E_USER_ERROR', |
16 | 512 => 'E_USER_WARNING', | |
17 | 1024 => 'E_USER_NOTICE', | |
18 | 2048 => 'E_STRICT', | |
19 | 4096 => 'E_RECOVERABLE_ERROR', | |
20 | 8192 => 'E_DEPRECATED', | |
21 | 16384 => 'E_USER_DEPRECATED', | |
22 | 32767 => 'E_ALL'); | |
23 | ||
24 | function log_error($errno, $errstr, $file, $line, $context) { | |
b367c951 AD |
25 | if ($errno == E_NOTICE) return false; |
26 | ||
27 | if ($this->adapter) | |
28 | return $this->adapter->log_error($errno, $errstr, $file, $line, $context); | |
29 | else | |
30 | return false; | |
889a5f9f AD |
31 | } |
32 | ||
80fd79ca | 33 | function log($string, $context = "") { |
b367c951 | 34 | if ($this->adapter) |
80fd79ca | 35 | return $this->adapter->log_error(E_USER_NOTICE, $string, '', 0, $context); |
b367c951 AD |
36 | else |
37 | return false; | |
38 | } | |
39 | ||
40 | private function __clone() { | |
41 | // | |
42 | } | |
43 | ||
44 | function __construct() { | |
45 | switch (LOG_DESTINATION) { | |
46 | case "sql": | |
47 | $this->adapter = new Logger_SQL(); | |
48 | break; | |
49 | case "syslog": | |
50 | $this->adapter = new Logger_Syslog(); | |
51 | break; | |
611aeb71 AD |
52 | case "stdout": |
53 | $this->adapter = new Logger_Stdout(); | |
54 | break; | |
b367c951 AD |
55 | default: |
56 | $this->adapter = false; | |
57 | } | |
889a5f9f | 58 | } |
b367c951 AD |
59 | |
60 | public static function get() { | |
61 | if (self::$instance == null) | |
62 | self::$instance = new self(); | |
63 | ||
64 | return self::$instance; | |
65 | } | |
66 | ||
611aeb71 | 67 | } |