禁用Appstats日志记录

Sax*_*uce 4 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()的调用?或者,还有更好的方法?

谢谢.

Rob*_*uin 6

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

如果要修补将Appstats,你应该看一看线303/google/appengine/ext/appstats/recording.py.如果你正在使用webapp,通过用_save方法替换它的save方法,应该很容易简单地修补 appstats.

此外,提交功能请求并发布指向组的链接.我认为能够禁用日志记录调用是一个有效的请求; 他们确实倾向于将日志混乱一点.


Sax*_*uce 6

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

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

def webapp_add_wsgi_middleware(app):     
    from google.appengine.ext.appstats import recording     
    app = recording.appstats_wsgi_middleware(app)     
    return app
Run Code Online (Sandbox Code Playgroud)

这就是我所做的:

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
Run Code Online (Sandbox Code Playgroud)

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