]> git.wh0rd.org - tt-rss.git/blobdiff - classes/logger.php
Merge pull request #385 from dzaikos/cache-image-size-2
[tt-rss.git] / classes / logger.php
index e0ca373634d784efd21a442f7e76ee7eeb96cd53..4a9c1df820cba383d06cbea104831d3b6f63be43 100644 (file)
@@ -1,10 +1,17 @@
 <?php
 class Logger {
+       private static $instance;
+       private $adapter;
 
        public static $errornames = array(
                1                       => 'E_ERROR',
                2                       => 'E_WARNING',
+               4                       => 'E_PARSE',
                8                       => 'E_NOTICE',
+               16                      => 'E_CORE_ERROR',
+               32                      => 'E_CORE_WARNING',
+               64                      => 'E_COMPILE_ERROR',
+               128             => 'E_COMPILE_WARNING',
                256             => 'E_USER_ERROR',
                512             => 'E_USER_WARNING',
                1024            => 'E_USER_NOTICE',
@@ -15,11 +22,44 @@ class Logger {
                32767           => 'E_ALL');
 
        function log_error($errno, $errstr, $file, $line, $context) {
-               return false;
+               if ($errno == E_NOTICE) return false;
+
+               if ($this->adapter)
+                       return $this->adapter->log_error($errno, $errstr, $file, $line, $context);
+               else
+                       return false;
        }
 
        function log($string) {
-               return false;
+               if ($this->adapter)
+                       return $this->adapter->log($string);
+               else
+                       return false;
+       }
+
+       private function __clone() {
+               //
+       }
+
+       function __construct() {
+               switch (LOG_DESTINATION) {
+               case "sql":
+                       $this->adapter = new Logger_SQL();
+                       break;
+               case "syslog":
+                       $this->adapter = new Logger_Syslog();
+                       break;
+               default:
+                       $this->adapter = false;
+               }
        }
+
+       public static function get() {
+               if (self::$instance == null)
+                       self::$instance = new self();
+
+               return self::$instance;
+       }
+
 }
 ?>