consilience / laravel-slow-query-logger
Laravel慢查询记录器
Requires
- illuminate/database: ^5.6|^7.0|^8.0|^9.0
- illuminate/support: ^5.6|^7.0|^8.0|^9.0
README
安装/快速入门
composer require consilience/laravel-slow-query-logger
或者在 composer.json
中添加以下行,然后运行 composer update
"require": { "consilience/laravel-slow-query-logger": "^2.0" }
开启慢查询记录
LARAVEL_SLOW_QUERY_LOGGER_ENABLED=true
查看日志文件以查看慢查询。
配置
可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Consilience\Laravel\SlowQueryLogger\SlowQueryLoggerProvider"
您可能不需要发布配置;只需设置以下列出的必需环境变量即可。
enabled
启用慢查询记录器。
您可以通过环境变量 LARAVEL_SLOW_QUERY_LOGGER_ENABLED
设置此值。默认为 false
。
channel
设置记录的通道。如果您希望将所有查询日志与其他日志消息分开,这可能会很有用。
您可以通过环境变量 LARAVEL_SLOW_QUERY_LOGGER_CHANNEL
设置此值。默认情况下,将使用应用程序默认的日志通道。
level
设置记录慢查询的日志级别。
您可以通过环境变量 LARAVEL_SLOW_QUERY_LOGGER_LEVEL
设置此值。默认为 debug
。
threshold-ms
仅记录执行时间超过此毫秒数的查询。
您可以通过环境变量 LARAVEL_SLOW_QUERY_LOGGER_THRESHOLD_MS
设置此值。默认为 700
。值为 0 将记录所有查询。
使用方法
默认情况下,绑定变量不包括在记录的详细信息中。仅记录核心查询。
[20[2022-08-02 22:15:33] production.DEBUG: SQL 6663.970 mS: update
users
setname
= ?,users
.updated_at
= ? whereid
= ?
通过设置 LARAVEL_SLOW_QUERY_LOGGER_REPLACE_BINDINGS=true
,将查询的绑定变量替换为匹配的值
[2022-08-02 16:17:13] production.DEBUG: SQL 784.200 mS: update
users
setname
= 'JJ',users
.updated_at
= '2022-08-02 16:17:05' whereid
= '1'
您还可以(或作为替代)通过设置 LARAVEL_SLOW_QUERY_LOGGER_SHOW_BINDINGS=true
在日志上下文中单独列出绑定数据。这可能会很有用,因为替换绑定将所有值视为字符串,从而可以更详细地观察数据类型。
[2022-08-02 22:22:35] production.DEBUG: SQL 413.910 mS: update
users
setname
= 'JJ',users
.updated_at
= '2022-08-02 22:21:50' whereid
= '1' {"bindings":["JJ","2022-08-02 22:21:50",1]}