0

ブートストラップのログ構成に registerErrorHandler() を追加しようとすると、次のエラーが発生します。

<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-&gt;__call('registerErrorHa...', Array)
#1 /public/fb/application/Bootstrap.php(24): Zend_Log-&gt;registerErrorHandler()
#2 /public/fb/library/Zend/Application/Bootstrap/BootstrapAbstract.php(666): Bootstrap-&gt;_initLogging()
#3 /public/fb/library/Zend/Application/Bootstrap/BootstrapAbstract.php(619): Zend_Application_Bootstrap_BootstrapAbstract-&gt;_executeResource('logging')
#4 /public/fb/library/Zend/Application/Bootstrap/BootstrapAbstract.php(583): Zend_Application_Bootstrap_BootstrapAbstract-&gt;_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();

}

出力 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"
}

助けてくれてありがとう。

4

1 に答える 1

1

Zend_Log::__call() マジック メソッドでエラーがスローされます。__call() が使用されているため、これは、参照されたメソッドがオブジェクトに明示的に存在しないことを意味し、PHP はオブジェクトの __call() マジック メソッドを呼び出しました。

呼び出しているメソッドの名前にタイプミスがないことを確認してください。

使用している ZF のバージョンが実際にこの方法をサポートしていると確信していますか? ZF のインストール (1.11.4) を確認したところ、Zend/Log.php ファイルの 280 行目に、この問題に関連しない何かがあります。

ZF インストールを最新バージョンに更新すると役立つ場合があります。

于 2011-09-09T14:12:15.367 に答える