Commit d77204c7 authored by Gunnar Lium's avatar Gunnar Lium

Allow overriding formatter used by default monolog.handler service.

parent b7df67ff
......@@ -11,6 +11,7 @@
namespace Silex\Provider;
use Monolog\Formatter\LineFormatter;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Silex\Application;
......@@ -56,10 +57,16 @@ class MonologServiceProvider implements ServiceProviderInterface
return $log;
});
$app['monolog.formatter'] = function () {
return new LineFormatter();
};
$app['monolog.handler'] = function () use ($app) {
$level = MonologServiceProvider::translateLevel($app['monolog.level']);
$handler = new StreamHandler($app['monolog.logfile'], $level);
$handler->setFormatter($app['monolog.formatter']);
return new StreamHandler($app['monolog.logfile'], $level);
return $handler;
};
$app['monolog.level'] = function () {
......
......@@ -11,6 +11,7 @@
namespace Silex\Tests\Provider;
use Monolog\Formatter\JsonFormatter;
use Monolog\Handler\TestHandler;
use Monolog\Logger;
use Silex\Application;
......@@ -59,6 +60,17 @@ class MonologServiceProviderTest extends \PHPUnit_Framework_TestCase
$this->assertTrue($app['monolog.handler']->hasDebug('logging a message'));
}
public function testOverrideFormatter()
{
$app = new Application();
$app->register(new MonologServiceProvider());
$app['monolog.formatter'] = new JsonFormatter();
$app['monolog.logfile'] = null;
$this->assertInstanceOf('Monolog\Formatter\JsonFormatter', $app['logger']->popHandler()->getFormatter());
}
public function testErrorLogging()
{
$app = $this->getApplication();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment