禁用Appstats日志记录

时间:2010-11-29 15:35:46

标签: python google-app-engine appstats

我正在使用Appstats,如下所示:

http://code.google.com/appengine/docs/python/tools/appstats.html

它工作正常,但现在每个请求都会记录如下信息:

  

保存; key: appstats :039300,部分:65字节,完整:12926字节,开销:0.000 + 0.004;链接:http://example.com/stats/details?time=1290733239309

有没有办法禁用日志消息,同时让Appstats运行?

也许我可以拿自己的ext / appstats / recording.py副本并注释掉对logging.info()的调用?或者有更好的方法吗?

感谢。

3 个答案:

答案 0 :(得分:6)

您可能需要查看sample appstats config file。您可以将appstats配置为仅运行一定比例的请求;这应该减少记录消息的数量,但你仍然会有信息。

如果您要修补appstats,请查看/google/appengine/ext/appstats/recording.py中的第303行。如果你正在使用webapp,通过用_save方法替换它的save方法,可以很容易地简单地monkey-patch appstats。

另外,提交feature request并发布指向论坛的链接。我认为能够禁用日志记录调用是一个有效的请求;他们确实倾向于将日志弄得一团糟。

答案 1 :(得分:6)

如果有其他人感兴趣,这就是我如何使用Robert的猴子补丁建议删除日志记录。

插入appstats的标准方法是这样的:

def webapp_add_wsgi_middleware(app):     
    from google.appengine.ext.appstats import recording     
    app = recording.appstats_wsgi_middleware(app)     
    return app

这就是我所做的:

def webapp_add_wsgi_middleware(app):     

    from google.appengine.ext.appstats import recording

    def save(self):
        try:        
            self._save()      
        except Exception:
            pass

    recording.Recorder.save = save

    app = recording.appstats_wsgi_middleware(app)

    return app

这保留了原始的save()函数的“忽略所有异常”行为,但删除了它周围的所有日志记录。

答案 2 :(得分:2)

Appstats的作者在这里。为什么要禁用日志记录?我不是说你不应该 - 只是因为我不明白你的理由而我想要禁用它我感到很惊讶。如果它是一个合理的用例,我们可能只需添加一个配置标志来禁用它。