1. 日志的處理工作是由系統自動進行的,在開啟日志記錄的情況下,會記錄下允許的日志級別的所有日志信息。
其中,為了性能考慮,SQL日志級別必須在調試模式開啟下有效,否則就不會記錄。 系統的日志記錄由核心的Think\Log類及其驅動完成,提供了多種方式記錄了不同的級別的日志信息。
默認情況下只是在調試模式記錄日志,要在部署模式開啟日志記錄,必須在配置中開啟LOG_RECORD參數,以及可以在應用配置文件中配置需要記錄的日志級別,例如:
'LOG_RECORD' => true, // 開啟日志記錄
'LOG_LEVEL' =>'EMERG,ALERT,CRIT,ERR', // 只記錄EMERG ALERT CRIT ERR 錯誤
日志級別
ThinkPHP對系統的日志按照級別來分類,包括:
- EMERG 嚴重錯誤,導致系統崩潰無法使用
- ALERT 警戒性錯誤, 必須被立即修改的錯誤
- CRIT 臨界值錯誤, 超過臨界值的錯誤
- ERR 一般性錯誤
- WARN 警告性錯誤, 需要發出警告的錯誤
- NOTICE 通知,程序可以運行但是還不夠完美的錯誤
- INFO 信息,程序輸出信息
- DEBUG 調試,用於調試信息
- SQL SQL語句,該級別只在調試模式開啟時有效
2.thinkphp 項目日志輸出類的目錄為:TP/Lib/Core/Log.class.PHP
參考的thinkphp 開發手冊如下:
通常日志文件的寫入是自動完成的,如果我們需要在開發的過程中手動記錄日志信息,可以使用Log類的方法來操作。日志文件的寫入有兩種方法:
一、使用Log::write 方法
Log::write 直接寫入日志 |
|
用法 |
Log::write($message,$level=self::ERR,$type='',$destination='',$extra='') |
參數 |
message(必須):要記錄的日志信息,字符串 |
返回值 |
無 |
如:你要將$sql 變量寫進日志: Log::write('調試的SQL:'.$SQL, Log::SQL);
表示用默認的日志記錄方式記錄調試SQL信息
二、使用Log::record和 Log::save方法
Log::record記錄日志 |
|
用法 |
Log::record($message,$level=self::ERR,$record=false) |
參數 |
message(必須):要記錄的日志信息,字符串 |
返回值 |
無 |
Log::record方法必須結合Log::save方法才能完成日志記錄,因為record方法只是把日志信息保存到內存,並沒有真正寫入日志,直到調用Log::save方法。
Log::save 保存記錄的日志 |
|
用法 |
Log::save($type='',$destination='',$extra='') |
參數 |
type(可選):日志記錄方式,默認為空取LOG_TYPE配置 |
返回值 |
無 |
使用示例:
- Log::record('測試調試錯誤信息', Log::DEBUG);
- Log::record('調試的SQL:'.$SQL, Log::SQL);
- Log::save();
文章來源:劉俊濤的博客
地址:http://www.cnblogs.com/lovebing
歡迎關注,有問題一起學習歡迎留言、評論。