Sto distribuendo un'applicazione Sinatra utilizzando il passeggero. L'app distribuita funziona, ma non completamente: alcuni percorsi funzionano bene, altri semplicemente rendono una pagina vuota. Io non riesco a trovare grandi differenze tra gli itinerari che funzionano e gli itinerari che non lo fanno, e io non riesco a rintracciare eventuali errori ..Problemi di debug dell'applicazione Sinatra in produzione
Handlers
ho definito le not_found e di errore gestori come segue:
not_found do
'404. Bummer!'
end
error do
'Nasty error: ' + env['sinatra.error'].name
end
questi funzionano bene sulla mia macchina locale, sia in fase di sviluppo e di produzione, ma non ho mai visto questi vengono sul server.
Apache Logs
Quando access.log e ho la coda di Apache ha colpito uno dei percorsi interrotti, vedo un 500: rack_hoptoad
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"
Ho anche installato e configurato il middleware rack_hoptoad nel mio config.ru, ma nessuna eccezione lo sta facendo nello hoptoad.
# Send exceptions to hoptoad
require 'rack_hoptoad'
use Rack::HoptoadNotifier, 'MY_API_KEY'
accedendo
Ho installato accedendo in questo modo ..
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
Questa configurazione mi permette di chiamare logger.info nei miei percorsi, che funziona a livello locale e su il server per i percorsi di lavoro, ma i percorsi interrotti non arrivano abbastanza lontano da chiamare logger.info.
Cosa fare?
Qualche idea su come posso vedere che cosa causa gli errori 500? Grazie per qualsiasi aiuto!
"Stackies"? :-) – SLaks
+1 per Stackies! – DigitalRoss
Hai provato a semplici app su httpd? come le app "Quanto in basso nel mondo". prendi semplicemente "/" fai; 'Come in basso mondo'; fine In primo luogo controllare, quindi le prossime app. Controlla le tue semplici app su httpd e sul file di configurazione. a proposito, penso che non si possano ottenere alcuni registri https su sinatra. – tknv