Ich habe meine Logger in meiner Bootstrap.php wie folgt eingerichtet:
$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);
Ich habe den folgenden Code, den ich so eingestellt habe, dass er fehlschlägt:
$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;
Ich habe zwei Protokollschreiber eingestellt: Stream und FirePHP. Der Stream-Protokollschreiber hat die Ausnahme erfolgreich abgefangen und geschrieben, aber FirePHP hat nichts getan. Wenn ich andere Protokollmeldungen an anderen Stellen in meinem Code einfüge, z. B. indexAction
werden diese in beiden Fällen gut angezeigt. Übersehe ich etwas?
EDIT Der Fehlercode befindet sich in meinem Datenbank-Mapper, nicht in einem Controller. Könnte es sein, dass er keinen Zugriff auf die HTTP-Header hat?