Codeigniter错误日志

时间:2013-05-10 06:56:20

标签: php codeigniter error-handling

我已将错误级别设置为1中的config.php。 但问题是我遇到的问题很多NOT ACTUALLY ERRORS in terms of application logic

考虑以下代码示例

  $deleted = @unlink($filename);

  $imap_uid = @imap_uid($con,$msgno);

正如您所看到的,上面的示例不会抛出错误,但是如果发生错误,codeigniter会记录。

是否可以动态禁用错误记录?

我期待这样的事情

 // ....

   $this->error_log = 0; // disable error logging

   //Perform some operation that which may log an error,even its suppressed 

   $this->error_log = 1; //enable it again

 // ...

感谢。

2 个答案:

答案 0 :(得分:1)

您可以为$ _enabled

扩展CI_Log类添加setter
Class MY_Log extends CI_Log
{
    function enable_logging($item=TRUE) {
         $this->_enabled = (bool)$item;
    }
}

现在你可以这样做

$这 - >对数似> enable_logging(FALSE); //禁用

$这 - >对数似> enable_logging(); //启用

答案 1 :(得分:0)

感谢基于Michail的回答,我使用受保护的$ _threshold变量获得了更灵活的解决方案。

Class MY_Log extends CI_Log
{
  public function setThreshold($l){
    if(!in_array($l,array(0,1,2,3,4,5))){
      log_message("error","MY_Log->setThreshold unsupported val: " . $l );
      return false;
    }
    $this->_threshold = $l;
    return true;
  }
}

从控制器中你可以

$this->log->setThreshold(0);