- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
日志的處理工作是由系統自動進行的,在開啟日志記錄的情況下,會記錄下允許的日志級別的所有日志信息。
其中,為了性能考慮,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方法寫入日志的時候 不受配置的允許日志級別影響,可以實時寫入任意級別的日志信息。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP