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

$_enabled のセッターを追加して CI_Log クラスを拡張できます

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 に答える