我试图查看日志文件中的错误。
我有一个ExceptionListener
类和一个使用标签
tags:
- { name: kernel.event_listener, event: kernel.exception }
如果我使用onKernelException
,请使用$event->setResponse($response);
方法
将不再记录错误消息。
我试图更改响应格式。这就是我需要这样做的原因。
如果我删除setResponse(),
错误被记录,但正如我所提到的,我需要另一种格式。
关于如何在调用setResponse
的情况下记录日志的任何想法?
这可以在不将@logger
注入我的监听器的情况下完成吗?
这是我的听众课程的样子
class ExceptionListener {
/**
* @param GetResponseForExceptionEvent $event
*/
public function onKernelException(GetResponseForExceptionEvent $event)
{
$e = $event->getException();
if ($e instanceof HttpException) {
$response = new JsonResponse();
$data = [
'error' => [
'code' => $e->getStatusCode(),
'message' => $$e->getMessage()
]
];
$response->setStatusCode($code)
->setData($data);
$event->setResponse($response);
}
// Let the internal listener handle the exception
return;
}
}
在services.yml
中 app.event_listener.exception_listener:
class: AppBundle\EventListener\ExceptionListener
tags:
- { name: kernel.event_listener, event: kernel.exception }