_isEnabled = false; } if (function_exists('zend_monitor_custom_event')) { $this->_isZendServer = true; } } /** * Create a new instance of Zend_Log_Writer_ZendMonitor * * @param array|Zend_Config $config * @return Zend_Log_Writer_Syslog * @throws Zend_Log_Exception */ static public function factory($config) { return new self(); } /** * Is logging to this writer enabled? * * If the Zend Monitor extension is not enabled, this log writer will * fail silently. You can query this method to determine if the log * writer is enabled. * * @return bool */ public function isEnabled() { return $this->_isEnabled; } /** * Log a message to this writer. * * @param array $event log data event * @return void */ public function write($event) { if (!$this->isEnabled()) { return; } parent::write($event); } /** * Write a message to the log. * * @param array $event log data event * @return void */ protected function _write($event) { $priority = $event['priority']; $message = $event['message']; unset($event['priority'], $event['message']); if (!empty($event)) { if ($this->_isZendServer) { // On Zend Server; third argument should be the event zend_monitor_custom_event($priority, $message, $event); } else { // On Zend Platform; third argument is severity -- either // 0 or 1 -- and fourth is optional (event) // Severity is either 0 (normal) or 1 (severe); classifying // notice, info, and debug as "normal", and all others as // "severe" monitor_custom_event($priority, $message, ($priority > 4) ? 0 : 1, $event); } } else { monitor_custom_event($priority, $message); } } }