Отключите Query_Log() перед выполнением некоторых запросов в Laravel

Я занимаюсь разработкой веб-приложения на основе Laravel 5.6 . Есть много запросов к базе данных для выполнения.

В целях безопасности я пытаюсь сохранить все свои запросы в таблице базы данных в виде журнала запросов. У меня есть использование AppServiceProvider поставщик услуг, чтобы сделать это. Теперь я хочу отключить Query_Log() функция на некоторое время, которая также предотвращает сохранение конкретного запроса к базе данных. Когда я запускал приложение с приведенным выше кодом, оно работало при превышении максимального времени выполнения базы данных.

Может кто-нибудь подсказать мне, как я это делаю?

public function boot()
{
    if(env('App_Debug')){

        DB::listen(function($query){

           //DB::connection()->disableQueryLog();
            Query_Log::insert([
                'query_string'=>$query->sql,
                'user' => "Admin",
                'created_at' =>Carbon::now()->toDateTimeString(),
            ]);   
        });
    }
}

0 ответов

Вот как я исключаю слушателя. я не знаю, есть ли функция

    DB::listen(function ($query) {
        try {
            //check if the query log is the excluded table
            if (preg_match('(query_activities)', $query->sql) == 0) {
                QueryActivity::query()->create([
                    'connection_name' => $query->connectionName,
                    'time_taken' => $query->time,
                    'query' => $query->query,
                    'bindings' => Utils::aesEncrypt(json_encode($query->bindings)),
                ]);
            }
        } catch (\Exception $exception) {

        }
    });
Другие вопросы по тегам