Commit 94be9476 authored by Fabien Potencier's avatar Fabien Potencier

merged branch igorw/monolog-enhancement (PR #213)

Commits
-------

b711b707 [MonologServiceProvider] improve logging, log reponse status, improve test granularity

Discussion
----------

[MonologServiceProvider] improve logging, log response status, improve test granularity
parents 20eeadbc b711b707
......@@ -17,6 +17,8 @@ use Monolog\Handler\StreamHandler;
use Silex\Application;
use Silex\ServiceProviderInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\HttpException;
/**
......@@ -54,16 +56,16 @@ class MonologServiceProvider implements ServiceProviderInterface
$app['autoloader']->registerNamespace('Monolog', $app['monolog.class_path']);
}
$app->before(function () use ($app) {
$app['monolog']->addInfo($app['request']->getMethod().' '.$app['request']->getRequestUri());
$app->before(function (Request $request) use ($app) {
$app['monolog']->addInfo('> '.$request->getMethod().' '.$request->getRequestUri());
});
$app->error(function (\Exception $e) use ($app) {
if ($e instanceof HttpException) {
$app['monolog']->addWarning($e->getStatusCode().' '.$app['request']->getMethod().' '.$app['request']->getRequestUri());
} else {
$app['monolog']->addError($e->getMessage());
}
$app['monolog']->addError($e->getMessage());
});
$app->after(function (Request $request, Response $response) use ($app) {
$app['monolog']->addInfo('< '.$response->getStatusCode());
});
}
}
......@@ -32,7 +32,7 @@ class MonologServiceProviderTest extends \PHPUnit_Framework_TestCase
}
}
public function testRegisterAndRender()
public function testRegister()
{
$app = new Application();
......@@ -44,10 +44,48 @@ class MonologServiceProviderTest extends \PHPUnit_Framework_TestCase
return new TestHandler($app['monolog.level']);
});
return $app;
}
/**
* @depends testRegister
*/
public function testRequestLogging($app)
{
$app->get('/foo', function () use ($app) {
return 'foo';
});
$this->assertFalse($app['monolog.handler']->hasInfoRecords());
$request = Request::create('/foo');
$app->handle($request);
$this->assertTrue($app['monolog.handler']->hasInfoRecords());
}
/**
* @depends testRegister
*/
public function testManualLogging($app)
{
$app->get('/log', function () use ($app) {
$app['monolog']->addDebug('logging a message');
});
$this->assertFalse($app['monolog.handler']->hasDebugRecords());
$request = Request::create('/log');
$app->handle($request);
$this->assertTrue($app['monolog.handler']->hasDebugRecords());
}
/**
* @depends testRegister
*/
public function testErrorLogging($app)
{
$app->get('/error', function () {
throw new \RuntimeException('very bad error');
});
......@@ -56,16 +94,11 @@ class MonologServiceProviderTest extends \PHPUnit_Framework_TestCase
return 'error handled';
});
$this->assertFalse($app['monolog.handler']->hasDebugRecords());
$this->assertFalse($app['monolog.handler']->hasErrorRecords());
$request = Request::create('/log');
$app->handle($request);
$request = Request::create('/error');
$app->handle($request);
$this->assertTrue($app['monolog.handler']->hasDebugRecords());
$this->assertTrue($app['monolog.handler']->hasErrorRecords());
}
}
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