2011-11-21 68 views
0

无论何时在生产中运行,RoR都只显示警告和错误,这很好。Ruby on Rails:生产环境的详细错误日志

无论如何,记录器不显示有关错误的详细信息:没有时间戳,没有IP地址,没有用户请求。

我试着创建一个自定义记录器,但它不允许我在不使用恶意方法的情况下获取IP地址和实际用户请求(因为它在模型中)。

理想情况下,我想有消息,如:

Started GET "/api/request?" for 89.80.x.x at Mon Nov 21 17:29:08 +0100 2011 

和下面的错误STRACK痕迹。但这些应该只显示警告和错误,并且最终用户不应该看到它们(因此,应关闭should_all_requests_local)。

任何方式来实现这一目标?

+0

以下堆栈跟踪错误?也许你应该看看里面['log4r'](http://stackoverflow.com/questions/5664136/how-to-configure-log4r-with-rails-3-0-x)以及如何将它与轨道集成(那里应该是一个比链接问题更简单的方式)。 – mliebelt

回答

1

在生产模式中的例外不应该经常发生,所以我去了这个宝石:Exception Notification

应该立即处理生产模式中的异常,这样对于(至少对我来说)更好,然后记录错误。

+0

我也使用[例外通知](https://github.com/rails/exception_notification)gem,它允许我让生产服务器只显示友好的错误页面,而我几乎立即得到所有讨厌的细节。事实上,我友好的错误页面告诉用户已经发送了通知,所以他们甚至不需要做任何事情。 –