logger.php 1.2 KB

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