2015-10-16 40 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)