我正在使用乘客部署 Sinatra 应用程序。部署的应用程序正在运行,但并非完全正常:一些路径运行良好,其他路径只是呈现空白页面。我似乎找不到有效的路线和无效的路线之间的任何主要区别,而且我似乎无法找到任何错误..
处理程序
我定义了 not_found 和错误处理程序如下:
not_found do
'404. Bummer!'
end
error do
'Nasty error: ' + env['sinatra.error'].name
end
这些在我的本地机器上运行良好,无论是在开发还是生产中,但我从来没有看到这些出现在服务器上。
阿帕奇日志
当我跟踪 Apache 的 access.log 并点击其中一条损坏的路径时,我看到了 500:
helpers [27/Oct/2009:15:54:59 -0400] "GET /admin/member_photos/photos HTTP/1.1" 500 20 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"
rack_hoptoad
我还在我的 config.ru 中安装并配置了 rack_hoptoad中间件,但没有例外将其用于 hoptoad。
# Send exceptions to hoptoad
require 'rack_hoptoad'
use Rack::HoptoadNotifier, 'MY_API_KEY'
日志记录
我已经像这样设置了日志记录..
set :raise_errors => true
set :logging, true
log = File.new("log/sinatra.log", "a+")
STDOUT.reopen(log)
STDERR.reopen(log)
require 'logger'
configure do
LOGGER = Logger.new("log/sinatra.log")
end
helpers do
def logger
LOGGER
end
end
此设置允许我在我的路由中调用logger.info,该路由在本地和服务器上运行以获取工作路由,但损坏的路径不足以调用 logger.info。
该怎么办?
关于如何查看导致 500 错误的原因的任何想法?谢谢你的帮助!