2015-10-16 64 views
0

我正在运行的Amazon EC2服务器上的网页瓶,以及由于某种原因,调试器不工作。我写了“app.debug = True”,但它似乎没有什么区别。我得到一个内部服务器错误,但它没有告诉我任何的调试信息。有谁知道如何让它工作?瓶调试在AWS EC2

回答

1

据我所知,你将无法正常调试瓶的应用,同时它是在生产环境中运行(在你的情况,而这是在Amazon EC2服务器上托管)。

如果你想利用Werkzerug的交互式调试器,你需要在自己的机器上本地运行应用程序,以便能够调试。

但是,如果你想获得记录的错误,同时通过电子邮件在生产环境中工作,我建议建立一个SMTPHandler并添加到其连接到app.logger Logger类。请参见下面的ProductionConfig类的一个片段,其是由在Github米格尔格林贝格的样本瓶应用截取。请参阅文件夹here:

class ProductionConfig(Config): 
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \ 
     'sqlite:///' + os.path.join(basedir, 'data.sqlite') 

    @classmethod 
    def init_app(cls, app): 
     Config.init_app(app) 

     # Email errors to the administrators 
     import logging 
     from logging.handlers import SMTPHandler 
     credentials = None 
     secure = None 
     if getattr(cls, 'MAIL_USERNAME', None) is not None: 
      credentials = (cls.MAIL_USERNAME, cls.MAIL_PASSWORD) 
      if getattr(cls, 'MAIL_USE_TLS', None): 
       secure =() 
     mail_handler = SMTPHandler(
      mailhost=(cls.MAIL_SERVER, cls.MAIL_PORT), 
      fromaddr=cls.FLASKY_MAIL_SENDER, 
      toaddrs=[cls.FLASKY_ADMIN], 
      subject=cls.FLASKY_MAIL_SUBJECT_PREFIX + ' Application Error', 
      credentials=credentials, 
      secure=secure) 
     mail_handler.setLevel(logging.ERROR) 
     app.logger.addHandler(mail_handler)