Чтобы получить журналы запросов в Laravel, вы можете использовать функцию журнала запросов Laravel. Эта функция позволяет регистрировать все запросы к базе данных, выполненные во время запроса. Вот несколько методов, которые вы можете использовать для получения журналов запросов в Laravel, а также примеры кода:
Метод 1: использование фасада DB
// Enable query logging
DB::connection()->enableQueryLog();
// Perform your database queries
// ...
// Retrieve the query log
$queryLog = DB::getQueryLog();
Метод 2. Использование фасада Event
// Enable query logging
Event::listen('illuminate.query', function ($query, $bindings, $time, $connectionName) {
// Store the query log in a variable, database, or file
});
Метод 3. Использование фасада Журнал
// Enable query logging
DB::enableQueryLog();
// Perform your database queries
// ...
// Retrieve the query log
$queryLog = DB::getQueryLog();
// Store the query log in the Laravel log
Log::debug('Query Log', ['queries' => $queryLog]);
Метод 4. Использование класса QueryLogger
// Create a query logger instance
$queryLogger = app(\Illuminate\Database\Query\Logger\QueryLogger::class);
// Enable query logging
DB::connection()->enableQueryLog();
// Set the query logger for the connection
DB::connection()->setQueryLogger($queryLogger);
// Perform your database queries
// ...
// Retrieve the query log
$queryLog = $queryLogger->queries;
Метод 5. Использование специального промежуточного программного обеспечения
Создайте собственное промежуточное программное обеспечение, которое регистрирует запросы и регистрирует его в стеке промежуточного программного обеспечения вашего приложения.
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class LogQueries
{
public function handle($request, Closure $next)
{
DB::connection()->enableQueryLog();
$response = $next($request);
$queryLog = DB::getQueryLog();
Log::debug('Query Log', ['queries' => $queryLog]);
return $response;
}
}
Убедитесь, что вы добавили промежуточное программное обеспечение к нужному маршруту или группе маршрутов в файле app/Http/Kernel.php.
После получения журнала запросов вы можете сохранить его в переменной, записать в базу данных или сохранить в файл, в зависимости от ваших требований.