PageRenderTime 49ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/wp-content/plugins/broken-link-checker/includes/logger.php

https://bitbucket.org/lgorence/quickpress
PHP | 125 lines | 77 code | 30 blank | 18 comment | 4 complexity | c5c456183532938130fde95454bd9e97 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1, AGPL-1.0
  1. <?php
  2. if ( !class_exists('blcLogger') ):
  3. define('BLC_LEVEL_DEBUG', 0);
  4. define('BLC_LEVEL_INFO', 1);
  5. define('BLC_LEVEL_WARNING', 2);
  6. define('BLC_LEVEL_ERROR', 3);
  7. /**
  8. * Base class for loggers. Doesn't actually log anything anywhere.
  9. *
  10. * @package Broken Link Checker
  11. * @author Janis Elsts
  12. */
  13. class blcLogger {
  14. function __construct($param = ''){
  15. }
  16. function blcLogger($param = ''){
  17. $this->__construct($param);
  18. }
  19. function log($message, $object = null, $level = BLC_LEVEL_DEBUG){
  20. }
  21. function debug($message, $object = null){
  22. $this->log($message, $object, BLC_LEVEL_DEBUG);
  23. }
  24. function info($message, $object = null){
  25. $this->log($message, $object, BLC_LEVEL_INFO);
  26. }
  27. function warn($message, $object = null){
  28. $this->log($message, $object, BLC_LEVEL_WARNING);
  29. }
  30. function error($message, $object = null){
  31. $this->log($message, $object, BLC_LEVEL_ERROR);
  32. }
  33. function get_messages($min_level = BLC_LEVEL_DEBUG){
  34. return array();
  35. }
  36. function get_log($min_level = BLC_LEVEL_DEBUG){
  37. return array();
  38. }
  39. function clear(){
  40. }
  41. }
  42. /**
  43. * A basic logger that uses WP options for permanent storage.
  44. *
  45. * Log entries are initially stored in memory and need to explicitly
  46. * flushed to the database by calling blcCachedOptionLogger::save().
  47. *
  48. * @package Broken Link Checker
  49. * @author Janis Elsts
  50. */
  51. class blcCachedOptionLogger extends blcLogger {
  52. var $option_name = '';
  53. var $log;
  54. var $filter_level = BLC_LEVEL_DEBUG;
  55. function __construct($option_name = ''){
  56. $this->option_name = $option_name;
  57. $oldLog = get_option($this->option_name);
  58. if ( is_array($oldLog) && !empty($oldLog) ){
  59. $this->log = $oldLog;
  60. } else {
  61. $this->log = array();
  62. }
  63. }
  64. function log($message, $object = null, $level = BLC_LEVEL_DEBUG){
  65. $new_entry = array($level, $message, $object);
  66. array_push($this->log, $new_entry);
  67. }
  68. function get_log($min_level = BLC_LEVEL_DEBUG){
  69. $this->filter_level = $min_level;
  70. return array_filter($this->log, array($this, '_filter_log'));
  71. }
  72. function _filter_log($entry){
  73. return ( $entry[0] >= $this->filter_level );
  74. }
  75. function get_messages($min_level = BLC_LEVEL_DEBUG){
  76. $messages = $this->get_log($min_level);
  77. return array_map( array($this, '_get_log_message'), $messages );
  78. }
  79. function _get_log_message($entry){
  80. return $entry[1];
  81. }
  82. function clear(){
  83. $this->log = array();
  84. delete_option($this->option_name);
  85. }
  86. function save(){
  87. update_option($this->option_name, $this->log);
  88. }
  89. }
  90. /**
  91. * A dummy logger that doesn't log anything.
  92. */
  93. class blcDummyLogger extends blcLogger { }
  94. endif;
  95. ?>