0

我已将错误级别设置为1in 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

 // ...

谢谢。

4

2 回答 2

1

您可以扩展 CI_Log 类,为 $_enabled 添加设置器

Class MY_Log extends CI_Log
{
    function enable_logging($item=TRUE) {
         $this->_enabled = (bool)$item;
    }
}

现在你可以这样做

$this->log->enable_logging(FALSE);//禁用

$this->log->enable_logging();//启用

于 2013-05-10T08:52:57.710 回答
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);
于 2013-06-19T15:02:11.293 回答