brandworks/querylogger

Trace or log your (slow) queries in Laravel 4

v1.0.0 2016-01-05 15:14 UTC

This package is not auto-updated.

Last update: 2024-11-13 19:40:39 UTC


README

This package allows you to log and trace your queries. For example: if you have some slow queries you can find where they are called.

Requirements

  • PHP >=5.4
  • LARAVEL 4.2

Getting started

Laravel 4.2

  1. Install the brandworks/querylogger package

    $ composer require brandworks/querylogger
  2. Update app/config/app.php` to activate the package

    # Add `Brandworks\Querylogger\QueryloggerServiceProvider` to the `providers` array
    'providers' => array(
        ...
        'Brandworks\Querylogger\QueryloggerServiceProvider',
    )
    
    # You do not need to add the alias - This is being handled for you in the service provider
  3. Publish the config file

    $ php artisan config:publish brandworks/querylogger
  4. Optionally, you can change the options

You can also add a route to your application to directly view your logs in a table

  1. In the config: set the add_route and store_serialized options to true

    # file: app/config/packages/brandworks/querylogger/config.php
    'store_serialized' => false,
    'add_route' => false,
  2. You can optionally set the route you want to view your queries at

    # file: app/config/packages/brandworks/querylogger/config.php
    'route' => 'queries',

I don't recommend to enable this in a live environment; Your visitors can view your queries and deduct your database structure once they have found the route!

So if you are to add the routes do this in a local config file.

Usage

Below is a simple usage example of this package

//this does not affect user load since this is done in app finish (the client did already receive response)
App::finish(function($request, $response) {
    //make sure the package is enabled -- prevent errors
    if(class_exists("QueryLogger")) {
        $queryLog = QueryLogger::getLog();

        Log::info('The query log', $queryLog);
        //or do some other stuff with the log so you can make it more readale/filter on query time/...
    }
}

Contributing

Contributions are welcome.

Todo's

  • Write tests

Licence

This project is licensed under the terms of the MIT license.