ThinkPHP內置日志記錄


ThinkPHP內置日志記錄
日志記錄
http://document.thinkphp.cn/manual_3_2.html#log

日志的處理工作是由系統自動進行的,在開啟日志記錄的情況下,會記錄下允許的日志級別的所有日志信息。
其中,為了性能考慮,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語句,該級別只在調試模式開啟時有效

記錄方式:
日志的記錄方式默認是文件方式,可以通過驅動的方式來擴展支持更多的記錄方式。
記錄方式由LOG_TYPE參數配置,例如:
'LOG_TYPE' => 'File', // 日志記錄類型 默認為文件方式
File方式記錄,對應的驅動文件位於系統的Library/Think/Log/Driver/File.class.php。

手動記錄:
一般情況下,系統的日志記錄是自動的,無需手動記錄,但是某些時候也需要手動記錄日志信息,Log類提供了3個方法用於記錄日志。
方法 描述
Log::record() 記錄日志信息到內存
Log::save() 把保存在內存中的日志信息(用指定的記錄方式)寫入
Log::write() 實時寫入一條日志信息

由於系統在請求結束后會自動調用Log::save方法,所以通常,你只需要調用Log::record記錄日志信息即可。
record方法用法如下:
\Think\Log::record('測試日志信息');
默認的話記錄的日志級別是ERR,也可以指定日志級別:
\Think\Log::record('測試日志信息,這是警告級別','WARN');

record方法只會記錄當前配置允許記錄的日志級別的信息,如果應用配置為:
'LOG_LEVEL' =>'EMERG,ALERT,CRIT,ERR', // 只記錄EMERG ALERT CRIT ERR 錯誤
那么上面的record方法記錄的日志信息會被直接過濾,或者你可以強制記錄:
\Think\Log::record('測試日志信息,這是警告級別','WARN',true);

采用record方法記錄的日志信息不是實時保存的,如果需要實時記錄的話,可以采用write方法,例如:
\Think\Log::write('測試日志信息,這是警告級別,並且實時寫入','WARN');
write方法寫入日志的時候 不受配置的允許日志級別影響,可以實時寫入任意級別的日志信息。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM