關於ThinkPHP5.1+的Log無法記錄SQL調試記錄的小經歷


  項目開發階段,除了基本編碼外,性能也需要實時關注與優化。之前我的大部分項目都是使用ThinkPHP5.0以及ThinkPHP3.2,對於框架提供的日志記錄和日志配置都差不多,然后使用ThinkPHP5.1的時候就吃癟,花了十幾分鍾才好,所以寫一下防止后面忘記了再踩坑。

日志配置

ThinkPHP5.1沒有了config.php,日志配置單獨提出來自成一塊,叫Log.php,這個適應一下就可以。

 

日志記錄

在5.1以前的項目中記錄個人調試的日志,都是使用use think\Log; 然后使用Log::write()。然后5.1的時候引入了facede,所以直接用以前的方式,不能使用靜態調用write等方法,修改為use think\facede\Log,然后再使用。

 

 

實際日志配置

當需要調試時,app配置中'app_debug' => true, 'app_trace'      => true, 調試和追蹤開啟,瀏覽器打開會右下角出現TP的logo和運行時間,點擊圖標會出現調試明細。

但是有時不會出現,但是想調試SQL以及SQL的查詢速度,就需要開啟日志記錄,盡量不要配置保存目錄,默認在runtime下就可以,也不是因為自定義目錄的寫入權限問題,所以一切默認就好,先解決問題后面再研究問題原因,Log.php配置如下。

return [ // 日志記錄方式,支持 file socket 或者自定義驅動類 'type' => 'File', 'file_size' =>2097152, 'apart_level' => ['sql','error'], //日志的時間格式,默認是` c ` 'time_format' =>'c' ];

 

當開發階段結束,不需要除了error以外級別的日志,可以在"apart_level"配置只保留"error"。

 


免責聲明!

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



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