When I try to add a registerErrorHandler() to my log config in my bootstrap it gives the following error:
<b>Fatal error</b>: Uncaught exception 'Zend_Log_Exception' with message 'Bad log priority' in /public/fb/library/Zend/Log.php:280
Stack trace:
#0 /public/fb/application/Bootstrap.php(24): Zend_Log->__call('registerErrorHa...', Array)
#1 /public/fb/application/Bootstrap.php(24): Zend_Log->registerErrorHandler()
#2 /public/fb/library/Zend/Application/Bootstrap/BootstrapAbstract.php(666): Bootstrap->_initLogging()
#3 /public/fb/library/Zend/Application/Bootstrap/BootstrapAbstract.php(619): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('logging')
#4 /public/fb/library/Zend/Application/Bootstrap/BootstrapAbstract.php(583): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap(NULL)
#5 /public/fb/library/Zend/Application.php(355): Z in
<b>/public/fb/library/Zend/Log.php</b> on line <b>280</b>
Bootstrap.php
protected function _initLogging(){
$log = new Zend_Log();
$writer = new Zend_Log_Writer_Stream(APPLICATION_PATH .'/../data/logs/app.log');
$log->addWriter($writer);
$log->registerErrorHandler();
}
Output Zend_Debug::dump($log):
object(Zend_Log)#20 (6) {
["_priorities":protected] => array(8) {
[0] => string(5) "EMERG"
[1] => string(5) "ALERT"
[2] => string(4) "CRIT"
[3] => string(3) "ERR"
[4] => string(4) "WARN"
[5] => string(6) "NOTICE"
[6] => string(4) "INFO"
[7] => string(5) "DEBUG"
}
["_writers":protected] => array(1) {
[0] => object(Zend_Log_Writer_Stream)#21 (3) {
["_stream":protected] => resource(59) of type (stream)
["_filters":protected] => array(0) {
}
["_formatter":protected] => object(Zend_Log_Formatter_Simple)#22 (1) {
["_format":protected] => string(51) "%timestamp% %priorityName% (%priority%): %message%"
}}}
["_filters":protected] => array(0) {
}
["_extras":protected] => array(0) {
}
["_defaultWriterNamespace":protected] => string(15) "Zend_Log_Writer"
["_defaultFilterNamespace":protected] => string(15) "Zend_Log_Filter"
}
Thx for helping.
The error is thrown in Zend_Log::__call() magic method. since __call() is being used, this means that the referenced method does not exist in the object explicitly, so PHP has called the object's __call() magic method.
Are you sure there is no typo in the name of the method right where you are calling it?
Are you sure the version of ZF you are using actually supports this method? I checked my ZF installation (1.11.4) and on line 280 of Zend/Log.php file there is something else not related to this issue.
Updating your ZF installation to the last version could be helpful.