Tôi đang triển khai ứng dụng Sinatra bằng hành khách. Ứng dụng được triển khai đang hoạt động, nhưng không hoàn toàn: một số đường dẫn hoạt động tốt, một số khác chỉ hiển thị một trang trống. Tôi dường như không thể tìm thấy bất kỳ sự khác biệt lớn giữa các tuyến đường mà làm việc và các tuyến đường mà không làm, và tôi dường như không thể theo dõi bất kỳ lỗi nào ..Gặp sự cố khi gỡ lỗi ứng dụng Sinatra trong sản xuất
Handlers
tôi đã xác định trình xử lý not_found và error như sau:
not_found do
'404. Bummer!'
end
error do
'Nasty error: ' + env['sinatra.error'].name
end
Làm việc tốt trên máy cục bộ, cả trong phát triển và sản xuất, nhưng tôi chưa bao giờ thấy chúng xuất hiện trên máy chủ.
Apache Logs
Khi access.log và tôi đuôi của Apache trúng một trong những con đường bị hỏng, tôi nhìn thấy một 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
Tôi cũng đã đã cài đặt và cấu hình phần mềm trung gian rack_hoptoad trong config.ru của tôi, nhưng không có ngoại lệ nào làm cho nó tải xuống.
# Send exceptions to hoptoad
require 'rack_hoptoad'
use Rack::HoptoadNotifier, 'MY_API_KEY'
đăng
tôi đã thiết lập đăng nhập như vậy ..
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
Thiết lập này cho phép tôi gọi logger.info trong tuyến đường của tôi, mà làm việc tại địa phương và trên máy chủ cho các tuyến đường làm việc, nhưng các đường dẫn bị hỏng không nhận được đủ xa để gọi logger.info.
Việc cần làm?
Bất kỳ ý tưởng nào về cách tôi có thể xem nguyên nhân gây ra 500 lỗi là gì? Cảm ơn vì bất kì sự giúp đỡ!
"Stackies"? :-) – SLaks
+1 cho Stackies! – DigitalRoss
Bạn đã thử các ứng dụng đơn giản trên httpd chưa? như ứng dụng 'Thế giới thấp'. chỉ nhận được '/'; 'Làm thế nào thấp trên thế giới', kết thúc Lúc đầu hãy kiểm tra, sau đó tiếp theo ứng dụng của bạn. Vui lòng kiểm tra các ứng dụng đơn giản của bạn trên httpd và tệp cấu hình. bằng cách này, tôi nghĩ rằng bạn không thể nhận được một số bản ghi https trên sinatra. – tknv