什么导致rails应用程序崩溃?

时间:2010-06-16 02:52:42

标签: ruby-on-rails logging

我相信有人可以解释一下。

我们有一个已投入生产一年的应用程序。最近我们看到登录系统有困难的人的支持请求数量增加了。由于我们无法在开发中重新创建问题,我们决定在生产中打开调试记录器一个月。那是6月5日。

应用程序与上述更改工作正常,我们正在等待。

然后昨天我们注意到日志文件变得越来越大,所以我们在生产中做了另一个改变

config.logger = Logger.new("#{RAILS_ROOT}/log/production.log", 50, 1048576)

此更改后,应用程序在处理特定文件时开始崩溃。这段特殊代码是

RAILS_DEFAULT_LOGGER.info "Payment Information Request: ", request.inspect

你可以看到有一个逗号而不是加号。这段代码是在3月份推出的。

问题是:为什么应用程序现在失败了?如果更改调试级别导致应用程序处理这行代码,它应该在6月5日开始失败!今天为什么请有人帮助我们。我们在这里错过了明显的事吗?如果你没有答案,至少让我们知道我们不是唯一一个疯狂的人。

2 个答案:

答案 0 :(得分:2)

创建新记录器时,它与原始记录器不同。

默认情况下,Rails使用ActiveSupport::BufferedLogger,它将采用第二个参数,没有异常。我相信第二个参数用作程序名称。 request.inspect返回一个字符串,因此它只是将它用作一个非常大的名称。

新的记录器只是Ruby核心中的标准Logger,当向其传递错误数量的参数时会引发异常。

答案 1 :(得分:0)

不应该

RAILS_DEFAULT_LOGGER.info "Payment Information Request: #{request.inspect}"