写点什么

ThinkPHP5.1 无法记录 SQL 日志解决思路

作者:北桥苏
  • 2023-05-11
    广东
  • 本文字数:616 字

    阅读完需:约 2 分钟

项目开发阶段,除了基本编码外,性能也需要实时关注与优化。之前我的大部分项目都是使用 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"。

 


用户头像

北桥苏

关注

公众号:ZERO开发 2023-05-08 加入

专注后端实战技术分享,不限于PHP,Python,JavaScript, Java等语言,致力于给猿友们提供有价值,有干货的内容。

评论

发布
暂无评论
ThinkPHP5.1无法记录SQL日志解决思路_php_北桥苏_InfoQ写作社区