我在 Kohana::$log 上收到错误“调用非对象上的成员函数 add()”
没有登录application/logs
目录。我描述的错误是在apache error_log
上找到的。这是它的外观
[2012 年 8 月 17 日星期五 17:07:09] [错误] [客户端 MY.IPA.DDR.ESS] PHP 致命错误:在 /var/www/html/application 中的非对象上调用成员函数 add() /classes/kohana/exception.php 在第 8 行
这是我的错误控制器。
<?php
class Kohana_Exception extends Kohana_Kohana_Exception {
public static function handler(Exception $e) {
if (Kohana::DEVELOPMENT === Kohana::$environment) {
parent::handler($e);
} else {
try {
Kohana::$log->add(Log::ERROR, "own exception handler");
Kohana::$log->add(Log::ERROR, parent::text($e));
$attributes = array('action' => 500, 'message' => rawurlencode($e->getMessage()));
if ($e instanceof HTTP_Exception) {
$attributes['action'] = $e->getCode();
}
// Error sub-request.
echo Request::factory(Route::get('error')->uri($attributes))->execute()->send_headers()->body();
}
catch(Exception $e) {
// Clean the output buffer if one exists
ob_get_level() and ob_clean();
// Display the exception text
echo parent::text($e);
// Exit with an error status
exit(1);
}
}
}
}
从代码来看,它似乎Kohana::$log
还没有初始化。但是这段代码工作了很长时间。现在是什么让它不起作用?
我在Fedora 15上使用Kohana-3.2和PHP 5.3.13