Log SQL queries in Laravel/Lumen framework
Installs: 479 631
Open Issues: 1
- illuminate/container: 5.*|6.*|7.*|8.*|9.*|10.*
- illuminate/filesystem: 5.*|6.*|7.*|8.*|9.*|10.*
- illuminate/support: 5.*|6.*|7.*|8.*|9.*|10.*
- mnabialek/laravel-version: ^1.0.6
- nesbot/carbon: ~1.0 || ^2.0
- friendsofphp/php-cs-fixer: ^3.0
- laravel/framework: 10.*
- mockery/mockery: ^1.0
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^10.0
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.
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. (you are free to change amount on Paypal page)
composer require mnabialek/laravel-sql-logger --dev
in console to install this module (Notice
--devflag - it's recommended to use this package only for development).
If you use Laravel < 5.5 open
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
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
By default you should not edit published file because all the settings are loaded from
.envfile by default.
For Lumen you should skip this step.
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.sampleit's also recommended to add those entries also in
.env.samplefile just to make sure everyone know about those env variables. Be aware that
SQL_LOGGER_DIRECTORYis directory inside storage directory. If you want you can change it editing
To find out more about those setting please take a look at Configuration file
Make sure directory specified in
.envfile 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)
Make sure on live server you will set logging SQL queries to false in your
.envfile. 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).
Author of this awesome package is Marcin Nabiałek and Contributors
All changes are listed in Changelog
This package is licenced under the MIT license however Support is more than welcome.