500 ошибок на устройстве и консоли - PullRequest
2 голосов
/ 09 августа 2011

Я использую Google Appengine в производственной среде, и в настоящее время мы получаем 500 ошибок как на нашем веб-сайте, так и на консоли. Есть ли что-нибудь, что мы можем сделать, чтобы предотвратить это или справиться с ними более изящно?

РЕДАКТИРОВАТЬ: мы используем Python с Webapp

1 Ответ

2 голосов
/ 09 августа 2011
  1. Обработчики ошибок установки: http://code.google.com/appengine/docs/python/config/appconfig.html#Custom_Error_Responses

  2. Когда в приложении возникает ошибка, обработчики ошибок не могут помочь.Одно из решений состоит в том, чтобы обернуть приложение для обработки необработанных исключений:

    import logging
    
    from google.appengine.ext import webapp
    from google.appengine.ext.webapp import util
    
    def error_handler_middleware(app):
        """Wraps the application to catch uncaught exceptions."""
        def wsgi_app(environ, start_response):
            try:
                return app(environ, start_response)
            except Exception, e:
                logging.exception(e)
                # ... display a custom error message ...
                response = webapp.Response()
                response.set_status(500)
                response.out.write('Ooops! An error occurred...')
                response.wsgi_write(start_response)
                return ['']
    
        return wsgi_app
    
    app = webapp.WSGIApplication([...])
    app = error_handler_middleware(app)
    
    def main():
        util.run_wsgi_app(app)
    
    if __name__ == '__main__':
        main()
    
  3. Если вы можете, попробуйте webapp2 .Вы можете установить простые функции на обрабатывать исключения для приложений .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...