🔮 记录 SQL 执行日志
composer require mitoop/laravel-query-logger
在 config/logging.php
中添加一下日志频道配置
<?php
return [
'channels' => [
// 其他日志频道配置...
'sql' => [
'driver' => 'daily',
'path' => storage_path('logs/sql.log'),
'level' => env('LOG_LEVEL', 'debug'),
'permission' => 0664,
],
],
// 新增日志记录配置
'query' => [
'enabled' => env('ENABLE_QUERY_LOG', false), // [总开关] 是否启用 SQL 查询日志
'channel' => 'sql', // 配置日志记录频道
'excluded_tables' => ['telescope_'] // 排除表,支持表名前缀匹配
]
];
当启用 SQL 查询日志(query.enabled 为 true)时,包默认会记录所有的 SQL 查询日志。你无需做额外配置。
在 AppServiceProvider
的 boot
方法中,你可以设置自定义的 SQL 查询日志记录触发条件。
自定义触发条件后,SQL 日志将仅在 总开关 和 自定义触发条件 都为 true
时才会被记录。
示例:自定义触发条件
public function boot()
{
// 设置自定义触发条件
Condition::using(function () {
return is_local() || is_dev() || request()->hasCookie('debug_sql');
});
}