Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a203d31

Browse files
committed
[HttpKernel] Decouple exception logging from rendering
1 parent 3ce9c29 commit a203d31

File tree

4 files changed

+20
-5
lines changed

4 files changed

+20
-5
lines changed

src/Symfony/Component/HttpKernel/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
CHANGELOG
22
=========
33

4+
4.1.0
5+
-----
6+
7+
* `ExceptionListener` now logs and collects exceptions at priority `2048` (previously logged at `-128` and collected at `0`)
8+
49
4.0.0
510
-----
611

src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,17 @@ public function __construct($controller, LoggerInterface $logger = null)
3737
$this->logger = $logger;
3838
}
3939

40-
public function onKernelException(GetResponseForExceptionEvent $event)
40+
public function logKernelException(GetResponseForExceptionEvent $event)
4141
{
4242
$exception = $event->getException();
43-
$request = $event->getRequest();
4443

4544
$this->logException($exception, sprintf('Uncaught PHP Exception %s: "%s" at %s line %s', get_class($exception), $exception->getMessage(), $exception->getFile(), $exception->getLine()));
45+
}
4646

47-
$request = $this->duplicateRequest($exception, $request);
47+
public function onKernelException(GetResponseForExceptionEvent $event)
48+
{
49+
$exception = $event->getException();
50+
$request = $this->duplicateRequest($exception, $event->getRequest());
4851

4952
try {
5053
$response = $event->getKernel()->handle($request, HttpKernelInterface::SUB_REQUEST, false);
@@ -72,7 +75,10 @@ public function onKernelException(GetResponseForExceptionEvent $event)
7275
public static function getSubscribedEvents()
7376
{
7477
return array(
75-
KernelEvents::EXCEPTION => array('onKernelException', -128),
78+
KernelEvents::EXCEPTION => array(
79+
array('logKernelException', 2048),
80+
array('onKernelException', -128),
81+
),
7682
);
7783
}
7884

src/Symfony/Component/HttpKernel/EventListener/ProfilerListener.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public static function getSubscribedEvents()
121121
{
122122
return array(
123123
KernelEvents::RESPONSE => array('onKernelResponse', -100),
124-
KernelEvents::EXCEPTION => 'onKernelException',
124+
KernelEvents::EXCEPTION => array('onKernelException', 2048),
125125
KernelEvents::TERMINATE => array('onKernelTerminate', -1024),
126126
);
127127
}

src/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,13 @@ public function testHandleWithoutLogger($event, $event2)
5151
$this->iniSet('error_log', file_exists('/dev/null') ? '/dev/null' : 'nul');
5252

5353
$l = new ExceptionListener('foo');
54+
$l->logKernelException($event);
5455
$l->onKernelException($event);
5556

5657
$this->assertEquals(new Response('foo'), $event->getResponse());
5758

5859
try {
60+
$l->logKernelException($event2);
5961
$l->onKernelException($event2);
6062
$this->fail('RuntimeException expected');
6163
} catch (\RuntimeException $e) {
@@ -72,11 +74,13 @@ public function testHandleWithLogger($event, $event2)
7274
$logger = new TestLogger();
7375

7476
$l = new ExceptionListener('foo', $logger);
77+
$l->logKernelException($event);
7578
$l->onKernelException($event);
7679

7780
$this->assertEquals(new Response('foo'), $event->getResponse());
7881

7982
try {
83+
$l->logKernelException($event2);
8084
$l->onKernelException($event2);
8185
$this->fail('RuntimeException expected');
8286
} catch (\RuntimeException $e) {

0 commit comments

Comments
 (0)