如何在 Laravel 中记录与 http 响应相关的数据?

How can I record data related to http responses in Laravel?

我想记录我的服务器发出的 HTTP 响应。因此,例如,对于每个服务器请求,我想记录 http 响应是 1xx 响应还是 2xx、3xx 等等。在一天结束时,我希望看到,例如,在 1000 个请求中,其中 2% 是 5xx 服务器错误响应。我正在使用 laravel 框架。

我不想重定向响应,也不想更改响应消息。我只是想保留他们的记录。 我怎样才能做到这一点?我不确定应该在 laravel 模型的哪一点介绍我的逻辑。在哪里拦截最终响应?

感谢您的帮助! :)

你可以使用全局中间件"after",看这个https://laravel.com/docs/5.2/middleware#defining-middleware

然后检查响应

  • 如果它是 \Illuminate\Http\Response 的一个实例,您有一个 status() 方法可以为您提供响应状态。
  • 如果它不是 Response 实例,那么它应该是 200 OK 状态。

看来我有三个选择。

  1. (在我看来,最好的选择)如@mark-davidson所述,一种解决方案是使用服务器日志。
  2. 也可以使用中间件 "after" 来实现这一点,如 @peterpan666 所述。
  3. 阅读 laravel 文档我刚刚发现了中间件 "terminator",这也是一个不错的选择,因为此中间件仅在发送响应后运行。