An extended Logger Service Provider for Silex based on Monolog
The package is available on Packagist. Autoloading is PSR-4 compatible.
{
"require": {
"dafiti/logger-service-provider": "dev-master"
}
}
use Silex\Application;
use Dafiti\Silex\LoggerServiceProvider;
$app = new Application();
$app->register(new LoggerServiceProvider(), [
'logger.log_folder' => 'data/logs/',
'logger.level' => 'debug'
]);
// Create Logger - (StreamHandler default)
$app['logger.create']('app');
// Create Logger with another handlers
$app['logger.create']('worker', 'info', [
new FirePHPHandler(),
new ErrorLogHandler(ErrorLogHandler::OPERATING_SYSTEM)
]);
// Create Logger with processors
$app['logger.create']('worker', 'info', [], [
new Processor\UidProcessor()
]);
// Log something
$app['logger.manager']->get('worker')->log('something');
//or
$app['logger.manager']->worker->log('something');
class Custom extends \Dafiti\Silex\Log\Logger
{
}
$app['logger.manager']->add(new Custom('custom'));
// Check if logger exists
$app['logger.manager']->has('worker'); //boolean
$worker = [
'class' => '\Monolog\Handler\StreamHandler',
'params' => [ // class parameters
'stream' => '/tmp/worker.log',
'level' => 'info',
'bubble' => false,
'filePermission' => null,
'useLocking' => true
]
];
$app['logger.handler']($worker);
$loggers = [
'process' => [
'level' => 'debug',
'handlers' => [
[
'class' => '\Monolog\Handler\StreamHandler',
'params' => [
'stream' => '/tmp/process.log'
]
],
]
],
'mail' => [
'handlers' => [
[
'class' => '\Monolog\Handler\NativeMailerHandler',
'params' => [
'to' => '[email protected]',
'subject' => 'Wat!',
'from' => '[email protected]'
]
]
]
]
];
$app['logger.factory']($loggers);
MIT License