neeckeloo / monolog-module
Monolog integration into Laminas
Installs: 168 318
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 3
Forks: 3
Open Issues: 4
Requires
- php: ^8.0
- laminas/laminas-servicemanager: ^3.3.2
- monolog/monolog: ^2.0 || ^3.0
Requires (Dev)
- graylog2/gelf-php: ^1.1
- phpunit/phpunit: ^8.5.8 || ^9.3.7
README
Module to integrate Monolog with Laminas projects.
Requirements
Installation
MonologModule must be installed through Composer. For Composer documentation, please refer to getcomposer.org.
You can install the module from command line:
$ composer require neeckeloo/monolog-module
Enable the module by adding MonologModule
key in your application.config.php
file.
Usage
Configuring a logger
This is the configuration of a logger that can be retrieved with key Log\App
in the service manager. A channel name default
is also defined to identify to which part of the application a record is related.
return [ 'monolog' => [ 'loggers' => [ 'Log\App' => [ 'name' => 'default', ], ], ], ];
Adding a handler
The logger itself does not know how to handle a record. It delegates it to some handlers. The code above registers two handlers in the stack to allow handling records in two different ways.
return [ 'monolog' => [ 'loggers' => [ 'Log\App' => [ 'name' => 'default', 'handlers' => [ 'stream' => [ 'name' => StreamHandler::class, 'options' => [ 'path' => 'data/log/application.log', 'level' => Logger::DEBUG, ], ], 'fire_php' => [ 'name' => FirePHPHandler::class, ], ], ], ], ], ];
Using processors
If you want to add extra information (tags, user IP, ...) to the records before they are handled, you should add some processors. The code above adds two processors that add an unique identifier and the current request URI, request method and client IP to a log record.
return [ 'monolog' => [ 'loggers' => [ 'Log\App' => [ 'name' => 'default', 'handlers' => [ 'default' => [ 'name' => StreamHandler::class, 'options' => [ 'path' => 'data/log/application.log', 'level' => Logger::DEBUG, ], ], ], 'processors' => [ UidProcessor::class, WebProcessor::class, ], ], ], ], ];
You can also add processors to a specific handler.
return [ 'monolog' => [ 'loggers' => [ 'Log\App' => [ 'name' => 'default', 'handlers' => [ 'default' => [ 'name' => StreamHandler::class, 'options' => [ 'path' => 'data/log/application.log', 'level' => Logger::DEBUG, ], 'processors' => [ UidProcessor::class, WebProcessor::class, ], ], ], ], ], ], ];
Retrieving a logger
Once the configuration is complete, you can retrieve an instance of the logger as below:
$logger = $serviceManager->get('Log\App'); $logger->debug('debug message');
Testing
$ vendor/bin/phpunit
Credits
License
The MIT License (MIT). Please see License File for more information.