1. 程式人生 > >CI原始碼分析(二)—Log, 日誌模組

CI原始碼分析(二)—Log, 日誌模組

Ci的日誌模組是作為一個library來實現以及使用的。 (一) 使用方式 (a) 配置      在applicatin/environment/config/config.php中
  • log_threshold: 可寫日誌級別閥值.array('ERROR' => '1', 'DEBUG' => '2', 'INFO' => '3', 'ALL' => '4’).小於等於閥值的級別都可以寫入。配合這evironment的使用,可以在不同的環境下記錄不同級別的日誌,例如development環境記錄all級別,testing記錄到debug級別,production環境記錄error級別
  • log_path: 日誌檔案根目錄,預設是application/logs, 必須保證目錄有寫許可權
  • log_date_format: 每天日誌中的日期格式
(b) 呼叫      呼叫日誌只有一個方法
  • $this->log->write_log($level = 'error', $msg)
(二) 實現方式 (a) library/Log.php
  • write_log($level = 'error', $msg, $php_error = FALSE): 根據日誌級別來判定是否可寫入日誌
(三)優缺點 (a) 缺點
  • threshold配置限制死了日誌的寫入,例如在production環境,只能寫入error級別的日誌,即使想臨時加一些debug級別的Log也無法實現。此處我自己擴充套件了一個write_log_force方法。呼叫這個方法,會先把threshold調到all級別,然後寫日誌,最後恢復threshold級別. 地址https://github.com/wkupaochuan/analysis-about-ci-frame.git
    , 在application/library/MY_Log.php中