日志寫入
日志寫入
版本 | 新增功能 |
---|---|
5.0.16 | 增加文件日志自動清理功能支持 |
5.0.13 | 增加單文件日志寫入功能 |
5.0.10 |
增加record_trace 配置參數用于記錄trace信息到日志 |
5.0.4 | 命令行模式下日志自動定時寫入 |
debug 日志類型僅用于調試模式記錄 |
手動記錄
一般情況下,系統的日志記錄是自動的,無需手動記錄,但是某些時候也需要手動記錄日志信息,Log類提供了3個方法用于記錄日志。
方法 | 描述 |
---|---|
Log::record() | 記錄日志信息到內存 |
Log::save() | 把保存在內存中的日志信息(用指定的記錄方式)寫入 |
Log::write() | 實時寫入一條日志信息 |
由于系統在請求結束后會自動調用Log::save
方法,所以通常,你只需要調用Log::record
記錄日志信息即可。
record方法用法如下:
Log::record('測試日志信息');
默認的話記錄的日志級別是INFO,也可以指定日志級別:
Log::record('測試日志信息,這是警告級別','notice');
采用record方法記錄的日志信息不是實時保存的,如果需要實時記錄的話,可以采用write方法,例如:
Log::write('測試日志信息,這是警告級別,并且實時寫入','notice');
V5.0.4+版本開始,為避免內存溢出,在命令行下面執行的話 日志信息會定時自動寫入。
日志級別
ThinkPHP對系統的日志按照級別來分類,并且這個日志級別完全可以自己定義,系統內部使用的級別包括:
- log 常規日志,用于記錄日志
- error 錯誤,一般會導致程序的終止
- notice 警告,程序可以運行但是還不夠完美的錯誤
- info 信息,程序輸出信息
- debug 調試,用于調試信息
- sql SQL語句,用于SQL記錄,只在數據庫的調試模式開啟時有效
系統提供了不同日志級別的快速記錄方法,例如:
Log::error('錯誤信息');
Log::info('日志信息');
// 和下面的用法等效
Log::record('錯誤信息','error');
Log::record('日志信息','info');
還封裝了一個助手函數用于日志記錄,例如:
trace('錯誤信息','error');
trace('日志信息','info');
也支持指定級別日志的輸入,需要配置信息:
'log' => [
'type' => 'File',
// 日志記錄級別,使用數組表示
'level' => ['error'],
],
單文件日志
在某些情況下,需要對日志記錄進行分析和處理,那么開啟單文件日志寫入就會方便分析。
'log' => [
'type' => 'File',
// 日志記錄級別,使用數組表示
'single' => true,
],
開啟后,日志文件不再區分日期文件寫入,而是統一寫入到single.log
文件中。
日志自動清理
V5.0.16+
版本開始,支持文件日志的自動清理功能,你可以設置
'max_files' => 30
則日志文件最多只會保留30個,超過會自動清理較早的日志文件,避免日志文件長期寫入占滿磁盤空間。
開啟自動清理功能后,不會生成日期子目錄。
文檔最后更新時間:2018-04-26 10:39:17
未解決你的問題?請到「問答社區」反饋你遇到的問題