gpt4 book ai didi

ruby-on-rails - 自定义 Rails 未捕获的异常日志记录

转载 作者:行者123 更新时间:2023-12-04 06:25:20 24 4
gpt4 key购买 nike

因此,如果我的 Rails 应用程序中有未捕获的异常,它会被记录,并带有堆栈跟踪。

太好了。但我实际上想关闭“INFO”级别的日志记录,只记录WARN/ERROR/FATAL。

这意味着,对于未捕获的异常,我真的希望它记录更多关于当前请求的信息,而不仅仅是异常名称和堆栈跟踪。我想要请求参数,请求 URI,我什至想要请求客户端 IP 和用户代理。

我很难找到自定义 Rails 的哪个部分来获得这个。无论是单独通过配置还是通过覆盖方法,甚至通过猴子修补——我都无法弄清楚这实际上发生在哪里。

是因为它在中间件中关闭了吗?呸!无论哪种方式...有关实际执行此操作的最简单方法的任何提示?

(令人惊讶的是,Rails 没有让这件事变得简单,不是吗?这似乎不是什么不寻常的事情?是因为每个关心的人都在使用一些第三方平台来捕获这些东西而不是日志文件吗?我'我没有,呵呵。)

最佳答案

您可以通过使用 rescue_from 捕获所有异常来添加额外的异常处理。 .

例如,您可以将其添加到您的 application_controller.rb:

rescue_from Exception, :with => :internal_error

def internal_error(e)
logger.error request.fullpath
raise e
end

通过重新引发原始异常,您可以确保 rails 也能看到它。

关于ruby-on-rails - 自定义 Rails 未捕获的异常日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13691524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com