我正在扩展具有更好阈值级别的CodeIgniters核心库(Log)以及邮寄严重错误的方法。但由于某种原因,我无法从我的库中读取配置文件。如果我无法访问我的配置....我无法收到邮件的电子邮件地址。我究竟做错了什么?我收到的消息是:“致命错误:类'CI_Controller'未找到...”
到目前为止,这是我的代码:
class MY_Log extends CI_Log {
/**
* Constructor
*
* @access public
*/
function MY_Log()
{
parent::__construct();
$this->_levels = array('ERROR' => '1', 'INFO' => '2', 'DEBUG' => '3', 'ALL' => '4');
}
/**
* Write Log File
*
* Calls the native write_log() method and then sends an email if a log message was generated.
*
* @access public
* @param string the error level
* @param string the error message
* @param bool whether the error is a native PHP error
* @return bool
*/
function write_log($level = 'error', $msg, $php_error = FALSE)
{
$result = parent::write_log($level, $msg, $php_error);
$this->ci =& get_instance();
$this->ci->load->config('myconf/mailconf');
echo $this->ci->config->item('emails');
}
}
答案 0 :(得分:1)
我认为这是因为此类(Log
/ MY_Log
)在应用程序生命周期中过早加载而get_instance()
不可用。
也许不是扩展日志记录功能的构建,而是编写自己的类来处理这样的日志记录(如果你这样做,你可以把它包起来并以spark :)的形式发布它。)
另外,您可以使用composer package为您提供所需的功能,因为我确信已存在的功能。
如果您不熟悉作曲家,我建议您阅读Phil Sturgeon's article。