我在后端有一个长时间运行的进程,并且我看到日志只存储每个请求的最后 1000 个日志记录调用。
虽然这对于前端处理程序可能不是问题,但我发现对于后端处理程序可能会无限期运行非常不方便。
我尝试刷新日志以查看它是否创建了新的日志记录条目,但没有。这似乎很错误,我确信必须有一个简单的解决方案。请帮忙!
感谢stackoverflowians!
更新:已经有人在appengine google 群里问过这个问题,但是没有答案....
编辑:我关心的“深度”不是 RequestLogs 的总数,这很好,而是 RequestLog 中的 AppLogs 的数量(限制为 1000)。
编辑2:我做了以下测试来尝试大卫波普的建议:
def test_backends(self):
launched = self.request.get('launched')
if launched:
#Do the job, we are running in the backend
logging.info('There we go!')
from google.appengine.api.logservice import logservice
for i in range(1500):
if i == 500:
logservice.flush()
logging.info('flushhhhh')
logging.info('Call number %s'%i)
else:
#Launch the task in the backend
from google.appengine.api import taskqueue
tq_params = {'url': self.uri_for('backend.test_backends'),
'params': {'launched': True},
}
if not DEBUG:
tq_params['target'] = 'crawler'
taskqueue.add(**tq_params)
基本上,这会创建一个记录 1500 行的后端任务,在 500 处刷新。我希望看到两个 RequestLog,第一个包含 500 行,第二个包含 1000 行。
结果如下:
- 我没有得到文档建议的结果,手动刷新日志不会创建新的日志条目,我仍然有一个包含 1000 行的 RequestLog。前段时间我已经看过这部分文档,但我得到了同样的结果,所以我以为我不明白文档在说什么。无论如何,当时,我
logservice.flush()
在后端代码中留下了一个电话,但问题并没有解决。 - 我用 appcfg.py 下载了日志,你猜怎么着?...所有的 AppLogs 都在那里!我通常在 Web UI 中浏览日志,我不确定是否可以获得舒适的工作流程来以这种方式查看日志......对我来说理想的解决方案是文档中描述的解决方案。
- 我的应用程序自动刷新设置设置为默认值,我在某个时候玩过它们,但我发现问题仍然存在,所以我没有设置它们。
我正在使用 python ;)