Integration to Laminas with great logging system monolog
The recommended way to install is through composer from command line.
composer require enlitepro/enlite-monolog
- Add
EnliteMonolog
to yourconfig/application.config.php
to enable module.
// usage over service locator
$serviceLocator->get('EnliteMonologService')->debug('hello world');
use EnliteMonolog\Service\MonologServiceAwareInterface,
EnliteMonolog\Service\MonologServiceAwareTrait;
// usage in your services
class MyService implements MonologServiceAwareInterface
{
use MonologServiceAwareTrait;
public function whatever()
{
$this->getMonologService()->debug('hello world');
}
}
- Copy the config file
config/monolog.global.php.dist
from the module to config/autoload your project.
By default it write logs to data/logs/application.log
. If you want change this behaviour, add your config following:
'EnliteMonolog' => array(
'EnliteMonologService' => array(
// Logger name
// 'name' => 'EnliteMonolog',
// Handlers, it can be service locator alias(string) or config(array)
'handlers' => array(
// by config
'default' => array(
'name' => 'Monolog\Handler\StreamHandler',
'args' => array(
'stream' => 'data/log/application.log',
'level' => \Monolog\Logger::DEBUG,
'bubble' => true
),
'formatter' => array(
'name' => 'Monolog\Formatter\LogstashFormatter',
'args' => array(
'applicationName' => 'My Application',
),
),
),
// by service locator
'MyMonologHandler'
)
),
// you can specify another logger
// for example ChromePHPHandler
'MyChromeLogger' => array(
'name' => 'MyName',
'handlers' => array(
array(
'name' => 'Monolog\Handler\ChromePHPHandler',
)
)
)
),
now you can use it
$serviceLocator->get('EnliteMonologService')->debug('hello world');
$serviceLocator->get('MyChromeLogger')->debug('hello world');
This library attempts to comply with PSR-1, PSR-2, and PSR-4. If you notice compliance oversights, please send a patch via pull request.