Download the PHP package gupalo/monolog-dbal-logger without Composer
On this page you can find all versions of the php package gupalo/monolog-dbal-logger. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package monolog-dbal-logger
Monolog Handler for DBAL
Installation
Add to your project via composer:
composer require gupalo/monolog-dbal-logger
Create log table.
CREATE TABLE `_log` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
`created_at` datetime NOT NULL,
`level` smallint NOT NULL DEFAULT 0,
`level_name` enum('debug','info','notice','warning','error','critical','alert','emergency') NULL DEFAULT NULL,
`channel` varchar(255) NOT NULL DEFAULT '',
`message` varchar(1024) NOT NULL DEFAULT '',
`context` text NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `log_created_at_level` (`created_at`, `level`) USING BTREE
) DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci;
Example
$connection
is Doctrine\DBAL\Connection
$handler = new \Gupalo\MonologDbalLogger\MonologDbalLogger($connection);
$logger = new \Monolog\Logger();
$logger->pushHandler($handler);
$logger->addWarning('You might not read the docs', ['page' => 17, 'username' => 'guest']);
Symfony
Configuration example:
services.yaml
Gupalo\MonologDbalLogger\Symfony\ErrorLogListener:
tags: [ {name: 'kernel.event_subscriber'} ]
monolog.dbal_handler:
class: 'Gupalo\MonologDbalLogger\MonologDbalLogger'
public: true
bind:
$connection: '@doctrine.dbal.default_connection'
$level: 200
tags: ['monolog.logger']
monolog.yaml
monolog:
handlers:
db:
type: service
id: 'monolog.dbal_handler' # note - no "@"
channels: ["!event", "!request", "!security"]
Configure
Params in MonologDbalLogger::__construct
:
string $table = '_log'
: table nameint $maxRows = 100000
: if you have more rows than$maxRows
then cleaner will eventually (1 in 1000 chances) remove them
Extend
You may extend MonologDbalLogger
and add your own logic. See MyMonologDbalLogger
as an example.
If you add additional fields, remember to change table creation SQL.
Table:
CREATE TABLE `_log` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
`created_at` datetime NOT NULL,
`level` smallint NOT NULL DEFAULT 0,
`level_name` enum('debug','info','notice','warning','error','critical','alert','emergency') NULL DEFAULT NULL,
`channel` varchar(255) NOT NULL DEFAULT '',
`message` varchar(1024) NOT NULL DEFAULT '',
`context` text NULL DEFAULT NULL,
`method` varchar(255) NULL DEFAULT NULL,
`cmd` varchar(255) NULL DEFAULT NULL,
`uid` varchar(32) NULL DEFAULT NULL,
`count` int NULL DEFAULT NULL,
`time` float NULL DEFAULT NULL,
`exception_class` varchar(1024) NULL DEFAULT NULL,
`exception_message` varchar(1024) NULL DEFAULT NULL,
`exception_line` varchar(1024) NULL DEFAULT NULL,
`exception_trace` text NULL,
PRIMARY KEY (`id`),
INDEX `log_created_at_level` (`created_at`, `level`) USING BTREE
) DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci;
EasyAdmin
Add to menu
yield MenuItem::linkToCrud('Log', 'fa-solid fa-file-waveform', Log::class);
Add to config/packages/doctrine.yaml
doctrine:
orm:
mappings:
# ...here is "App", add below
Gupalo:
is_bundle: false
dir: '%kernel.project_dir%/vendor/gupalo/monolog-dbal-logger/src/Entity'
prefix: 'Gupalo\MonologDbalLogger\Entity'
alias: Gupalo
Create controller. Override if needed
use MarcinJozwikowski\EasyAdminPrettyUrls\Attribute\PrettyRoutesController;
#[PrettyRoutesController(path: 'log')]
class LogCrudController extends \Gupalo\MonologDbalLogger\EasyAdmin\Controller\LogCrudController
{
}
Add to config/services.yaml
services:
Gupalo\MonologDbalLogger\Repository\LogRepository:
tags: [ 'doctrine.repository_service' ]
Other
See tests
.
All versions of monolog-dbal-logger with dependencies
PHP Build Version
Package Version
Requires
php Version
>=8.1
ext-json Version *
ext-mbstring Version *
doctrine/dbal Version ^3.8|^4.0
monolog/monolog Version ^3.5
symfony/console Version ^5.4|^6.0|^7.0
symfony/event-dispatcher Version ^5.4|^6.0|^7.0
symfony/http-kernel Version ^5.4|^6.0|^7.0
ext-json Version *
ext-mbstring Version *
doctrine/dbal Version ^3.8|^4.0
monolog/monolog Version ^3.5
symfony/console Version ^5.4|^6.0|^7.0
symfony/event-dispatcher Version ^5.4|^6.0|^7.0
symfony/http-kernel Version ^5.4|^6.0|^7.0
The package gupalo/monolog-dbal-logger contains the following files
Loading the files please wait ....