項目開發階段,除了基本編碼外,性能也需要實時關注與優化。之前我的大部分項目都是使用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"。