2012-03-20 154 views
0

以下代码用于从应用程序引擎中提取日志以供进一步处理。但是我不知道如何使用logservice.fetch的结果来访问日志消息呢?logservice.fetch()不返回任何内容

import cgi 
from google.appengine.ext import webapp 
from google.appengine.ext.webapp.util import run_wsgi_app 
from google.appengine.ext import db 
from google.appengine.api.logservice import logservice 
logservice.AUTOFLUSH_ENABLED = False 

class MainPage(webapp.RequestHandler): 
    def get(self): 
     requestlogs = logservice.fetch(start_time=1332200000, end_time=1332249954, offset=None, minimum_log_level=logservice.LOG_LEVEL_INFO, include_incomplete=False, include_app_logs=True, version_ids=None, batch_size=None) 
     self.response.out.write(requestlogs) 
     c=0 
     for iter in requestlogs: 
      c=c+1 
     print c 
application = webapp.WSGIApplication([('/logs', MainPage)], debug=True) 

def main(): 
    run_wsgi_app(application) 

if __name__ == "__main__": 
    main() 
+1

你确定它不会返回任何东西,或者你的网页没有显示任何内容?在webapp请求处理程序中使用'print'是一个糟糕的想法;使用'self.response.out.write()' – geoffspear 2012-03-20 14:20:44

+0

嗯....实际上是给一个空白页.... 好的.....我会尝试self.response.out.write().. 。顺便说一句,logservice.fetch实际返回的是什么.....我的意思是返回的对象的属性是什么.....我不知道如何在获取日志后访问日志消息 – Dilletante 2012-03-20 14:28:38

+0

@MayankKhandelwal This全都在文档中 - 你有没有读过它? – 2012-03-21 07:11:27

回答

3

在你的情况下,代码会是这个样子:

from google.appengine.api import logservice 

MAX_LOGS_TO_READ = 10 

class MainPage(webapp.RequestHandler): 

    def get(self): 
    request_logs = logservice.fetch() 
    current_log = 0 
    for log in request_logs: 
     if current_log > MAX_LOGS_TO_READ: 
     break 
    self.response.out.write(log.combined) 

一对夫妇的意见..

+0

我一直在使用一个稍微修改过的代码,正如你所建议的那样......它一直工作得很好,直到现在......但是现在,当我想访问一整天的日志文件,我得到以下错误------ 状态:500 ** OverQuotaError:API调用logservice.Read()需要更多的配额比可用** – Dilletante 2012-03-24 06:32:25

相关问题