2012-07-21 60 views
1

有没有一种优雅的方式来检测我的谷歌应用程序引擎应用程序在向应用程序发出请求期间是否发生错误,并在出现更详细的日志时写出它?检测错误以改善Google App Engine中的错误日志记录Python

我有相当多的“调试”级别的日志记录,但我想删除所有这些,并只显示错误发生时的调试信息。

+0

你可以编写一个自定义日志过滤器来实现这一点您的最终目标是减少您为非错误请求生成的日志量? – 2012-07-22 00:01:45

+0

是的,尼克,那正是我想要的。 – 2012-07-22 00:27:29

回答

1

如果您正在使用webapp2的,我建议的下一个代码的请求过程中做到这一点:

app = webapp2.WSGIApplication(debug = os.environ['SERVER_SOFTWARE'].startswith('Dev'), config=config.webapp2_config) 

app.error_handlers[404] = handle_error 
app.error_handlers[500] = handle_error 
routes.add_routes(app) 

您可以看到该了handle_error下面的例子: https://github.com/coto/gae-boilerplate/blob/master/boilerplate/lib/basehandler.py#L70

+0

这真是太棒了。我不知道你可以做任何事情。现在我的未来有很多活动。 =) – 2012-07-22 23:08:06

+0

尽管有用,但这并不能真正回答原来的问题。 – 2012-07-23 04:05:13

0

您需要从LogService API文档开始;获取并过滤一些request_logs(请记住包含app_logs);对于任何req_log,你可以得到相关的app_logs。任何app_log都有三个属性(时间,级别和消息)。你要找的是消息属性。

req_logs = logservice.fetch(start_time=time.time() - 3600, 
          end_time=time.time(), 
          minimum_log_level=logservice.LOG_LEVEL_ERROR, 
          include_app_logs=True) 
for req_log in req_logs: 
    for app_log in req_log.app_logs: 
     print app_log.message 
+0

OP询问如何避免记录不需要的信息,而不是如何读取日志。 – 2012-07-23 04:05:30

+0

我后来明白了。我该怎么办?我宁愿留给那些访问过的人 – 2012-07-23 04:48:06