2011-12-15 18 views
13

Quando si sviluppano su Google App Server Engine dev applicazione a livello locale (Python) e verifichi un errore, il browser solo mostrare qualcosa di simile al seguente:Google App Engine server di dev applicazione non visualizza un messaggio di errore dettagliato

Errore del server Il sito Web ha riscontrato un errore durante il recupero di http://localhost:8080/. Potrebbe essere inattivo per manutenzione o configurato in modo errato. Ecco alcuni suggerimenti: Ricarica questa pagina web più tardi. Errore HTTP 500 (Errore interno server): si è verificata una condizione imprevista mentre il server stava tentando di soddisfare la richiesta.

Esiste una configurazione per visualizzare il messaggio di errore dettagliato?

+2

Aprire la finestra "Log" disponibile nel programma di avvio di GAE. –

risposta

7

È possibile utilizzare commandline e avviare server di sviluppo con --debug per ottenere messaggi di debug dettagliati. Ecco i documenti: http://code.google.com/appengine/docs/python/tools/devserver.html#Command_Line_Arguments

È inoltre possibile aggiungere la registrazione per la vostra applicazione per catturare informazioni: http://code.google.com/appengine/docs/python/runtime.html#Logging

+1

Qualsiasi modo quando si esegue il server locale otterremo messaggi di errore abbastanza dettagliati nella console stessa. – Gautam

+0

@GautamK Se con "la console stessa" intendi la finestra del browser, dipende interamente dalla tua app e da cosa sceglie di tornare quando lancia un'eccezione. –

+0

Grazie, il metodo del server di sviluppo fornito funziona. Tuttavia, mi sto chiedendo perché funziona quando si imposta il debug su True come nel seguente codice: app = webapp2.WSGIApplication ([('/', MainPage), ('/ sign', Guestbook)], debug = True) Nel vecchio SDK Python 2.5 di Gae utilizzando webapp, la webapp stamperà le tracce dello stack sull'output del browser in caso di errore. Nel nuovo SDK di GAE con supporto per Python 2.7 e webapp2, l'impostazione di debug = True dovrebbe funzionare bene, ma non invia errori al browser. – bobojam

2

Ecco quello che ho fatto e che sta funzionando finora.

Nel file dell'app principale.

... 
import logging 
... 

app = Flask(__name__) 
... 

@app.before_request 
def enable_local_error_handling(): 
    app.logger.addHandler(logging.StreamHandler()) 
    app.logger.setLevel(logging.INFO) 
Problemi correlati