使用remote_api的appengine logservice

时间:2014-09-02 15:41:11

标签: python google-app-engine logging remoteapi

我正试图从远程获取我的appengine应用程序日志。 我正在使用remote_api,我尝试使用appcfg,但我放弃它,因为它对下载/缓冲区有限制,所以我无法下载所有日志。

现在我正在使用logservice,但如果我在我的代码中使用它,它就不会返回任何内容。 这是我的代码:

import time


import urllib2

from google.appengine.ext.remote_api import remote_api_stub
from google.appengine.api.logservice import logservice

import getpass
import base64
import os
from appcfg import *
import getpass
import subprocess

os.environ['HTTP_X_APPENGINE_TASKRETRYCOUNT']='1'
os.environ["SERVER_SOFTWARE"] = "Developement"
os.environ['HTTP_HOST'] = 'unitTest'
os.environ['CURRENT_MODULE_ID']='default'
os.environ['CURRENT_VERSION_ID']='1.0'


email_address = "iacopo@indiegala.com"
application_url = "store-indiegala.appspot.com"
def aut():
    app_name = "store-indiegala.appspot.com"
    f = lambda : ("*EMAIL*", "*PASSWORD*")
    remote_api_stub.ConfigureRemoteApi(None, '/_ah/remote_api', auth_func,app_name)
    print("successfully authenticated")

    fetch_logs()


def fetch_logs():
    end_time = time.time()
    print ("starting")
    for req_log in logservice.fetch(end_time = end_time, offset = None, minimum_log_level = logservice.LOG_LEVEL_INFO, 
                include_app_logs=True, include_incomplete=True):
    print req_log.ip


def auth_func():
   global email_address
   return (email_address, getpass.getpass('Password:'))




aut()

它成功连接到我的应用程序并创建了logservice.fetch(),但它返回一个空对象......为什么?

1 个答案:

答案 0 :(得分:0)

转到App Engine管理员中的logs,确保您拥有正确的模块版本。它们可以在每个日志条目中找到,例如:

2015-01-24 21:58:43.425 / active start=2015-01-24,13:57:36.773 AppEngine-Google; (+http://code.google.com/appengine) module=default version=baseline

变为:

import os
os.environ["CURRENT_MODULE_ID"] = "default"
os.environ['CURRENT_VERSION_ID']=  "baseline"`