PageRenderTime 40ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/log/log.inc.php

https://bitbucket.org/phenobarbital/php-ldap
PHP | 101 lines | 46 code | 13 blank | 42 comment | 1 complexity | 55f3b51f2afd3994f7eead6b890d542c MD5 | raw file
  1. <?php
  2. class log {
  3. #instancia unica de la clase
  4. protected static $instance = null;
  5. #cache debug lines:
  6. protected static $_line = 0;
  7. #buffer de debug:
  8. protected static $_logbuffer = array();
  9. #nombre del archivo de log base
  10. protected static $_writer = null;
  11. #constructor de la clase
  12. protected function __construct() {}
  13. public function __destruct() {
  14. self::show();
  15. }
  16. #evitar que sea clonada accidentalmente la clase
  17. protected function __clone() {}
  18. /**
  19. * GetInstance
  20. * crea o accede a una instancia unica del Singleton
  21. * @return object::instance
  22. * @access public static
  23. * @author Jesus Lara
  24. */
  25. public static function getInstance() {
  26. if(empty(self::$instance)) {
  27. #crea una nueva instancia de la clase
  28. self::$instance = new self();
  29. }
  30. return self::$instance;
  31. }
  32. /**
  33. * clean_log
  34. * Clean and restart logs variables
  35. */
  36. public static function clean() {
  37. self::$_line = 0;
  38. self::$_logbuffer = array();
  39. }
  40. /**
  41. * get_log
  42. * retorna el log generado
  43. * @return string
  44. */
  45. public static function get() {
  46. $message = '';
  47. foreach(self::$_logbuffer as $k=>$v) {
  48. $msg = "{$k} : {$v}";
  49. $msg.= "\n";
  50. $message.= date('c') . '[' . time() . '] ' . $msg;
  51. }
  52. return $message;
  53. }
  54. /**
  55. * show_log
  56. * print log information to browser
  57. */
  58. public static function show() {
  59. echo self::get();
  60. #para no mostrar 2 veces, se limpia el log al mostrarlo
  61. self::clean();
  62. }
  63. /**
  64. * save_log
  65. * write log to disk or elsewhere
  66. * @access public static
  67. * @return none
  68. */
  69. public static function save() {
  70. return self::$_writer->write(self::get_log());
  71. }
  72. public static function write() {
  73. return self::save();
  74. }
  75. /**
  76. * log
  77. * add a log line to logbuffer
  78. * @return none
  79. * @access public static
  80. * @author Jesus Lara
  81. */
  82. public static function log($message) {
  83. self::$_line++;
  84. #save to the log buffer:
  85. self::$_logbuffer[self::$_line] = $message;
  86. }
  87. }
  88. ?>