【问题标题】:print statements are not appearing in GAE打印语句未出现在 GAE 中
【发布时间】:2017-07-05 15:51:16
【问题描述】:

在 dev(dev_appserver.py) 中运行 GAE 应用程序。运行时不显示打印语句,当我杀死 (Ctrl+C) 应用程序时显示语句。

这是一个非常简单的应用程序。

dev_appserver 命令:

python dev_appserver.py --skip_sdk_update_check=yes C:\Chaitu\Projects\fb

输出:打印语句未出现。

INFO     2017-07-05 10:33:54,759 devappserver2.py:116] Skipping SDK update check.
INFO     2017-07-05 10:33:54,875 api_server.py:297] Starting API server at: http://localhost:53833
INFO     2017-07-05 10:33:54,891 dispatcher.py:209] Starting module "default" running at: http://localhost:8080
INFO     2017-07-05 10:33:54,907 admin_server.py:116] Starting admin server at: http://localhost:8000
INFO     2017-07-05 10:33:59,188 module.py:809] default: "GET /fb/getdim HTTP/1.1" 200 40

调用函数:

class get_dim(webapp.RequestHandler):

    _apptitle      = None
    _projectid     = None
    _projectnumber = None


    def get(self):
        #bucket_name = os.environ.get('BUCKET_NAME', app_identity.get_default_gcs_bucket_name())
        cfg=appsettings()
        self.response.write("Enter into getdim")
        for i in cfg._templates:

            id=int(i['_id'])

            if id == 1:
                self.response.write("Enter into if statement")
                fbutils._getDim(int(i['_id']),i['_app_id'],i['_app_secret'],i['_access_token'],i['_ad_acct'],i['_filename'],i['_gcsbucket'],cfg)

实际功能:

def _getDim(idno,app_id,app_secret,access_token,ad_acct,file_name,bucket_nm,cfg):
  try:
    print "Hi This is test message"
  except:
    exc_type, exc_value, exc_traceback = sys.exc_info()

【问题讨论】:

    标签: python python-2.7 google-app-engine


    【解决方案1】:

    最可能的原因是您的操作系统在开发服务器进程完成之前没有刷新您的打印语句正在写入的缓冲区。

    使用logging package 在开发服务器运行时生成输出。

    import logging
    
    def _getDim(idno,app_id,app_secret,access_token,ad_acct,file_name,bucket_nm,cfg):
      try:
        logging.info("Hi This is test message")
      except:
        exc_type, exc_value, exc_traceback = sys.exc_info()
        logging.exception('Something went wrong.')
    

    默认情况下,开发服务器会抑制级别低于info 的日志消息,但您可以通过将--log_level 参数传递给开发服务器来控制这一点。

    python dev_appserver.py --skip_sdk_update_check=yes --log_level=debug C:\Chaitu\Projects\fb 
    

    【讨论】:

    • 感谢 Snakecharmerb。选项“--log_level=debug”对我没有帮助。操作系统是 Windows 10。有时它运行良好。有时会面临很多问题,例如打印语句未显示,有时不确定它是否运行了该功能,它不会给出任何显示消息的 response.logging.info。
    猜你喜欢
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    相关资源
    最近更新 更多