Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@benallfree
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save benallfree/0381c561959527e5f4a7 to your computer and use it in GitHub Desktop.
Save benallfree/0381c561959527e5f4a7 to your computer and use it in GitHub Desktop.
Add database query logging to Laravel

In app/config/database.php:

'log'=>$_ENV['DB_LOGGING'],

In .env

DB_LOGGING=1

In routes.php:

if (Config::get('database.log', false))
{           
    Event::listen('illuminate.query', function($query, $bindings, $time, $name)
    {
        $data = compact('bindings', 'time', 'name');

        // Format binding data for sql insertion
        foreach ($bindings as $i => $binding)
        {   
            if ($binding instanceof \DateTime)
            {   
                $bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
            }
            else if (is_string($binding))
            {   
                $bindings[$i] = "'$binding'";
            }   
        }       

        // Insert bindings into query
        $query = str_replace(array('%', '?'), array('%%', '%s'), $query);
        $query = vsprintf($query, $bindings); 

        Log::info($query, $data);
    });
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment