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 @@ ...@@ -11,6 +11,7 @@
namespace Silex\Provider; namespace Silex\Provider;
use Monolog\Formatter\LineFormatter;
use Monolog\Logger; use Monolog\Logger;
use Monolog\Handler\StreamHandler; use Monolog\Handler\StreamHandler;
use Silex\Application; use Silex\Application;
...@@ -56,10 +57,16 @@ class MonologServiceProvider implements ServiceProviderInterface ...@@ -56,10 +57,16 @@ class MonologServiceProvider implements ServiceProviderInterface
return $log; return $log;
}); });
$app['monolog.formatter'] = function () {
return new LineFormatter();
};
$app['monolog.handler'] = function () use ($app) { $app['monolog.handler'] = function () use ($app) {
$level = MonologServiceProvider::translateLevel($app['monolog.level']); $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 () { $app['monolog.level'] = function () {
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
namespace Silex\Tests\Provider; namespace Silex\Tests\Provider;
use Monolog\Formatter\JsonFormatter;
use Monolog\Handler\TestHandler; use Monolog\Handler\TestHandler;
use Monolog\Logger; use Monolog\Logger;
use Silex\Application; use Silex\Application;
...@@ -59,6 +60,17 @@ class MonologServiceProviderTest extends \PHPUnit_Framework_TestCase ...@@ -59,6 +60,17 @@ class MonologServiceProviderTest extends \PHPUnit_Framework_TestCase
$this->assertTrue($app['monolog.handler']->hasDebug('logging a message')); $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() public function testErrorLogging()
{ {
$app = $this->getApplication(); $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