2012-03-20 102 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

相關問題