首页 > 解决方案 > symfony 异常侦听器发送标头

问题描述

我创建了一个捕获异常的 exceptionListener。它已注册:

  App\Listener\ExceptionListener:
    tags:
      - { name: kernel.event_listener, event: kernel.exception, method: onKernelException }

也得到了处理的逻辑throwables。在这个例子中,我想创建一个简单的redirectionResponse

$event->setResponse(new RedirectResponse('/error.html', 302, []));

ofc /error.html 是可用的,我已经从 URL 栏跑了。

然而,如果我发现异常,在重定向之后,我会在重定向 URL 之后看到 app.CRITICAL 日志条目:

app.CRITICAL:无法启动会话,因为第 368 行的“/home/ PROJECT /vendor/symfony/http-foundation/Response.php”已经发送了标头。

所以错误日志是指我设置的响应,$event->setResponse(...)但是我没有触及任何标题特定事件,例如 header() setCookie() 等。

有没有办法追溯第一个标头的发送位置?

标签: symfonyloggingexception-logging

解决方案


推荐阅读