首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在生产中调试Sinatra应用程序有困难

在生产中调试Sinatra应用程序有困难
EN

Stack Overflow用户
提问于 2009-10-27 20:23:56
回答 3查看 3.3K关注 0票数 11

我正在部署一个使用乘客的Sinatra应用程序。已部署的应用程序正在工作,但并不完全有效:一些路径工作良好,另一些路径只是呈现一个空白页。我似乎找不到有效的路线和不起作用的路线之间的任何重大差别,而且我似乎也找不到任何错误。

处理程序

我将not_found和错误处理程序定义为:

代码语言:javascript
复制
not_found do
  '404. Bummer!'
end

error do
  'Nasty error: ' + env['sinatra.error'].name
end

在我的本地机器上,无论是在开发中还是在生产中,这些都能很好地工作,但我从未在服务器上看到这些。

Apache日志

当我跟踪Apache的access.log并撞上其中一条被破坏的路径时,我看到了一个500:

代码语言:javascript
复制
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中间件,但是没有任何例外使它成为hoptoad。

代码语言:javascript
复制
# Send exceptions to hoptoad
require 'rack_hoptoad'
use Rack::HoptoadNotifier, 'MY_API_KEY'

测井

我已经设置了这样的日志..。

代码语言:javascript
复制
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个错误的原因呢?谢谢你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-01 01:07:08

我会尝试使用Rack::ShowExceptions中间件来尝试跟踪问题。在config.ru中,在运行调用之前添加这两行:

代码语言:javascript
复制
require 'rubygems'
require 'your-app'

use Rack::ShowExceptions

run YourApp

这将捕获并显示Rack或应用程序中出现的任何异常的回溯跟踪。这应该会给你更多的细节,至少这将是一个希望。

票数 6
EN

Stack Overflow用户

发布于 2009-10-31 18:25:05

也许你的日志设置有问题?

在运行Sinatra服务器时重定向STDERR,以便您可以读取它。比如:

代码语言:javascript
复制
ruby myapp.rb -p 1234 > log/app.log 2>&1
票数 1
EN

Stack Overflow用户

发布于 2009-11-05 18:31:42

谢谢你的回复,但我最终不需要使用它们。我最初是在子URI配置中部署这个应用程序的。当我将应用程序部署到它自己的子域时,问题就消失了。

所以..。我不太清楚问题是什么,但是去掉这一行是我对站点的Apache配置解决了问题:

代码语言:javascript
复制
Redirect permanent / https://www.example.org/admin/member_photos/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1633431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档