我已将错误级别设置为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
// ...
感谢。
答案 0 :(得分:1)
您可以为$ _enabled
扩展CI_Log类添加setterClass 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);