Code Monkey home page Code Monkey logo

laravel-sql-logger's Introduction

Laravel SQL Logger

Packagist Support via Paypal Build Status Coverage Status Scrutinizer Code Quality

This module allows you to log SQL queries (and slow SQL queries) to log file in Laravel/Lumen framework. It's useful mainly when developing your application to verify whether your queries are valid and to make sure your application doesn't run too many or too slow database queries.

Support

Using this package is free of charge, however to keep it up-to-date and add new features small money support is appreciated. Suggested amount is 5$ per project where you use this package but any amount will help further development of this package. Support via Paypal (you are free to change amount on Paypal page)

Installation

  1. Run

    composer require mnabialek/laravel-sql-logger --dev

    in console to install this module (Notice --dev flag - it's recommended to use this package only for development).

  2. If you use Laravel < 5.5 open config/app.php and in providers section add:

    Mnabialek\LaravelSqlLogger\Providers\ServiceProvider::class,

    Laravel 5.5 uses Package Auto-Discovery and it will automatically load this service provider so you don't need to add anything into above file.

    If you are using Lumen open bootstrap/app.php and add:

    $app->register(Mnabialek\LaravelSqlLogger\Providers\ServiceProvider::class);
  3. If you use Laravel < 5.5 run:

    php artisan vendor:publish --provider="Mnabialek\LaravelSqlLogger\Providers\ServiceProvider"

    in your console to publish default configuration files.

    If you are using Laravel 5.5 run:

    php artisan vendor:publish

    and choose the number matching "Mnabialek\LaravelSqlLogger\Providers\ServiceProvider" provider.

    By default you should not edit published file because all the settings are loaded from .env file by default.

    For Lumen you should skip this step.

  4. In your .env file add the following entries:

    SQL_LOGGER_DIRECTORY="logs/sql"
    SQL_LOGGER_USE_SECONDS=false
    SQL_LOGGER_CONSOLE_SUFFIX=
    SQL_LOGGER_LOG_EXTENSION=".sql"
    SQL_LOGGER_ALL_QUERIES_ENABLED=true
    SQL_LOGGER_ALL_QUERIES_OVERRIDE=false
    SQL_LOGGER_ALL_QUERIES_PATTERN="#.*#i"
    SQL_LOGGER_ALL_QUERIES_FILE_NAME="[Y-m-d]-log"
    SQL_LOGGER_SLOW_QUERIES_ENABLED=true
    SQL_LOGGER_SLOW_QUERIES_MIN_EXEC_TIME=100
    SQL_LOGGER_SLOW_QUERIES_PATTERN="#.*#i"
    SQL_LOGGER_SLOW_QUERIES_FILE_NAME="[Y-m-d]-slow-log"
    SQL_LOGGER_FORMAT_NEW_LINES_TO_SPACES=false
    SQL_LOGGER_FORMAT_ENTRY_FORMAT="/* [origin]\\n   Query [query_nr] - [datetime] [[query_time]] */\\n[query]\\n[separator]\\n"
    

    and adjust values to your needs. You can skip variables for which you want to use default values.

    If you have also .env.sample it's also recommended to add those entries also in .env.sample file just to make sure everyone know about those env variables. Be aware that SQL_LOGGER_DIRECTORY is directory inside storage directory. If you want you can change it editing config/sql_logger.php file.

    To find out more about those setting please take a look at Configuration file

  5. Make sure directory specified in .env file exists in storage path and you have valid file permissions to create and modify files in this directory (If it does not exist this package will automatically create it when needed but it's recommended to create it manually with valid file permissions)

  6. Make sure on live server you will set logging SQL queries to false in your .env file. This package is recommended to be used only for development to not impact production application performance.

Upgrading from 1.*

When upgrading from 1.* version you should remove current sql_logger.php config file and replace this with new one (see installation step). You should also use new variables in .env file (old won't be used).

Authors

Author of this awesome package is Marcin Nabiałek and Contributors

Changes

All changes are listed in Changelog

License

This package is licenced under the MIT license however Support is more than welcome.

laravel-sql-logger's People

Contributors

mnabialek avatar yhbyun avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.