我正在尝试在exceptionListener类中使用Logger服务记录一些信息,但我不明白如何访问/创建logger对象...
这是我的代码:
class ExceptionListener
{
public function onKernelException(GetResponseForExceptionEvent $event)
{
...
$exception = $event->getException();
if ($exception instanceof HttpExceptionInterface) {
// HTTP Exception (400, 401, 404, ...)
$response = new JsonResponse(...)
}
...
$event->setResponse($response);
}
}
侦听器效法完美,但在这种情况下,默认情况下什么都没有记录到dev.log
文件中(当然是启用了记录并且功能功能(。
我尝试使用LoggerInterface
参数到onKernelException
函数(AutoWiring?(,但没有成功。
我应该在service.yaml
文件中还要其他配置吗?
AppEventListenerExceptionListener:
tags:
- { name: kernel.event_listener, event: kernel.exception }
默认情况下在SF4上自动启动,您应该能够在不进一步配置的情况下将loggerinterface注入侦听器中(然后在需要时调用$ this-> logger(:
use PsrLogLoggerInterface;
class ExceptionListener
{
protected $logger;
public function __construct(LoggerInterface $logger) {
$this->logger = $logger;
}
public function onKernelException(GetResponseForExceptionEvent $event)
{
...
$exception = $event->getException();
if ($exception instanceof HttpExceptionInterface) {
// HTTP Exception (400, 401, 404, ...)
$response = new JsonResponse(...)
}
...
$event->setResponse($response);
}
}