00001 <?php 00024 require_once 'Zend/Log.php'; 00025 00027 require_once 'Zend/Log/Writer/Abstract.php'; 00028 00030 require_once 'Zend/Log/Formatter/Firebug.php'; 00031 00033 require_once 'Zend/Wildfire/Plugin/FirePhp.php'; 00034 00044 class Zend_Log_Writer_Firebug extends Zend_Log_Writer_Abstract 00045 { 00046 00051 protected $_priorityStyles = array(Zend_Log::EMERG => Zend_Wildfire_Plugin_FirePhp::ERROR, 00052 Zend_Log::ALERT => Zend_Wildfire_Plugin_FirePhp::ERROR, 00053 Zend_Log::CRIT => Zend_Wildfire_Plugin_FirePhp::ERROR, 00054 Zend_Log::ERR => Zend_Wildfire_Plugin_FirePhp::ERROR, 00055 Zend_Log::WARN => Zend_Wildfire_Plugin_FirePhp::WARN, 00056 Zend_Log::NOTICE => Zend_Wildfire_Plugin_FirePhp::INFO, 00057 Zend_Log::INFO => Zend_Wildfire_Plugin_FirePhp::INFO, 00058 Zend_Log::DEBUG => Zend_Wildfire_Plugin_FirePhp::LOG); 00059 00064 protected $_defaultPriorityStyle = Zend_Wildfire_Plugin_FirePhp::LOG; 00065 00070 protected $_enabled = true; 00071 00075 public function __construct() 00076 { 00077 if (php_sapi_name()=='cli') { 00078 $this->setEnabled(false); 00079 } 00080 00081 $this->_formatter = new Zend_Log_Formatter_Firebug(); 00082 } 00083 00090 public function setEnabled($enabled) 00091 { 00092 $previous = $this->_enabled; 00093 $this->_enabled = $enabled; 00094 return $previous; 00095 } 00096 00102 public function getEnabled() 00103 { 00104 return $this->_enabled; 00105 } 00106 00113 public function setDefaultPriorityStyle($style) 00114 { 00115 $previous = $this->_defaultPriorityStyle; 00116 $this->_defaultPriorityStyle = $style; 00117 return $previous; 00118 } 00119 00125 public function getDefaultPriorityStyle() 00126 { 00127 return $this->_defaultPriorityStyle; 00128 } 00129 00137 public function setPriorityStyle($priority, $style) 00138 { 00139 $previous = true; 00140 if (array_key_exists($priority,$this->_priorityStyles)) { 00141 $previous = $this->_priorityStyles[$priority]; 00142 } 00143 $this->_priorityStyles[$priority] = $style; 00144 return $previous; 00145 } 00146 00153 public function getPriorityStyle($priority) 00154 { 00155 if (array_key_exists($priority,$this->_priorityStyles)) { 00156 return $this->_priorityStyles[$priority]; 00157 } 00158 return false; 00159 } 00160 00167 protected function _write($event) 00168 { 00169 if (!$this->getEnabled()) { 00170 return; 00171 } 00172 00173 if (array_key_exists($event['priority'],$this->_priorityStyles)) { 00174 $type = $this->_priorityStyles[$event['priority']]; 00175 } else { 00176 $type = $this->_defaultPriorityStyle; 00177 } 00178 00179 $message = $this->_formatter->format($event); 00180 00181 $label = isset($event['firebugLabel'])?$event['firebugLabel']:null; 00182 00183 Zend_Wildfire_Plugin_FirePhp::getInstance()->send($message, 00184 $label, 00185 $type, 00186 array('traceOffset'=>6)); 00187 } 00188 }