Я установил учетные записи в моем Bootstrap.php следующим образом:
$logger = new Zend_Log(); if($environment->debug == '1') { $stream = @fopen('/var/www/html/rta/rta.log','a',false); if(!$stream){ throw new Exception('Failed to open log stream'); } $writer = new Zend_Log_Writer_Stream($stream); $logger->addWriter($writer); $logger->addWriter(new Zend_Log_Writer_Firebug()); } else { // Do something else } Zend_Registry::set('logger',$logger);
У меня есть следующий код, который я настроил для отказа:
$data = array( 'config_id' => $config->getConfigId(), 'pass_column' => $config->getPassColumn(), 'filename' => $config->getFilename(), 'date_format' => $config->getDateFormat(), 'mapping_config' => $config->getMappingConfig(), 'config_name' => $config->getConfigName(), 'client_id' => $config->getClientId(), 'description' => $config->getDescription(), ); $where = $this->getDbTable()->getAdapter()->quoteInto('config_id = ?',$config->getConfigId()); $where = null; try { $this->getDbTable()->update($data,$where); }catch(Exception $e) { Zend_Registry::get('logger')->err('Could not update configuration.'); Zend_Registry::get('logger')->err($e); return false; } return true;
Я установил два журнала: Stream и FirePHP. Журналист потока успешно поймал и написал исключение, но FirePHP ничего не сделал. Если я помещаю другие сообщения журнала в другое место в моем коде, например indexAction
это показывает, что они оба хороши в обоих. Я что-то упускаю?
РЕДАКТИРОВАТЬ Код сбоя находится в моем ядре mapper, а не в контроллере. Может быть, у него нет доступа к заголовкам HTTP?
В следующем примере ниже показано, как заставить FirePHP получить информацию заголовка, в которой она нуждается, без использования FrontController.
// create the logger and log writer $writer = new Zend_Log_Writer_Firebug(); $logger = new Zend_Log($writer); // get the wildfire channel $channel = Zend_Wildfire_Channel_HttpHeaders::getInstance(); // create and set the HTTP response $response = new Zend_Controller_Response_Http(); $channel->setResponse($response); // create and set the HTTP request $channel->setRequest(new Zend_Controller_Request_Http()); // record log messages $logger->info('info message'); $logger->warn('warning message'); $logger->err('error message'); // insert the wildfire headers into the HTTP response $channel->flush(); // send the HTTP response headers $response->sendHeaders(); ?>