halloverden / symfony-doctrine-sql-logger-bundle
Better logging of SQL queries in Doctrine DBAL for Symfony.
Installs: 2 329
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 4
Forks: 3
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=8.1
- doctrine/doctrine-bundle: ^2.1
- symfony/monolog-bundle: ^3.5
- symfony/stopwatch: ^5.4|^6.1
README
Better logging of SQL queries in Doctrine DBAL for Symfony.
Installation
Make sure Composer is installed globally, as explained in the installation chapter of the Composer documentation.
Applications that use Symfony Flex
Open a command console, enter your project directory and execute:
$ composer require halloverden/symfony-doctrine-sql-logger-bundle
Applications that don't use Symfony Flex
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require halloverden/symfony-doctrine-sql-logger-bundle
Step 2: Enable the Bundle
Then, enable the bundle by adding it to the list of registered bundles
in the config/bundles.php
file of your project:
// config/bundles.php return [ // ... HalloVerden\DoctrineSqlLoggerBundle\HalloVerdenDoctrineSqlLoggerBundle::class => ['all' => true], ];
Configuration
By default, all you have to do is require this bundle and it wil log query execution time on the default connection for all queries that takes more than 100 ms.
hallo_verden_doctrine_sql_logger: loggers: HalloVerden\DoctrineSqlLoggerBundle\Loggers\QueryExecutionTimeLogger: enabled: true connections: - default
Set enabled to false to disable QueryExecutionTimeLogger. And you can add the connections you want to enable logging on.
You can also add your own loggers by adding them to loggers in the config.
QueryExecutionTimeLogger
if you want to log backtrace of the query with QueryExecutionTimeLogger add this to services.yaml:
HalloVerden\DoctrineSqlLoggerBundle\Loggers\QueryExecutionTimeLogger: calls: - ['setEnableBacktrace', [true]]
if you want to change the execution time threshold for logging add this to services.yaml:
HalloVerden\DoctrineSqlLoggerBundle\Loggers\QueryExecutionTimeLogger: calls: - ['setExecutionTimeThreshold', [150]]