/** * setting up listener * * @param Dispatcher $events * @param Writer $log */ private function setupListener(Dispatcher $events, Writer $log) { $environments = config('slow-query-logger.environments', []); if (!$this->app->environment($environments)) { return; } $events->listen(QueryExecuted::class, function (QueryExecuted $queryExecuted) use($log) { $sql = $queryExecuted->sql; $bindings = $queryExecuted->bindings; $time = $queryExecuted->time; $logSqlQueriesSlowerThan = config('slow-query-logger.time-to-log'); if ($logSqlQueriesSlowerThan < 0 || $time < $logSqlQueriesSlowerThan) { return; } $level = config('slow-query-logger.log-level', 'debug'); try { foreach ($bindings as $val) { $sql = preg_replace('/\\?/', "'{$val}'", $sql, 1); } $log->log($level, $time . ' ' . $sql); } catch (\Exception $e) { // be quiet on error } }); }
/** * Log a message to the logs. * * @param string $level * @param string $message * @param array $context * @return void * @static */ public static function log($level, $message, $context = array()) { \Illuminate\Log\Writer::log($level, $message, $context); }