我有一个自定义记录器,该记录器从REMOTE_ADDR
事件中提取各种标题(尤其是HTTP_X_FORWARDED_FOR
和ActiveSupport::Notifications
)。这对于控制器事件很好用,但是当出现RoutingError
时,我们永远不会命中控制器,而记录器获得的只是字符串的异常回溯。我可以订阅另一个活动吗?在命中控制器之前,如何获得请求失败的请求对象的访问权限?
答案 0 :(得分:0)
我想您需要实现某种中间件来捕获在执行控制器操作之前发生的错误。
https://guides.rubyonrails.org/rails_on_rack.html
也许您可以从https://github.com/smartinez87/exception_notification借用一些代码,或者使用它来实现使用记录器的自定义通知程序https://github.com/smartinez87/exception_notification#notifiers。