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

    項目開發階段,除了基本編碼外,性能也須要實時關注與優化。以前個人大部分項目都是使用ThinkPHP5.0以及ThinkPHP3.2,對於框架提供的日誌記錄和日誌配置都差很少,而後使用ThinkPHP5.1的時候就吃癟,花了十幾分鍾纔好,因此寫一下防止後面忘記了再踩坑。php

日誌配置

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

 

日誌記錄

在5.1之前的項目中記錄我的調試的日誌,都是使用use think\Log; 而後使用Log::write()。而後5.1的時候引入了facede,因此直接用之前的方式,不能使用靜態調用write等方法,修改成use think\facede\Log,而後再使用。瀏覽器

 

 

實際日誌配置

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

可是有時不會出現,可是想調試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"。socket

 

相關文章
相關標籤/搜索