4

我正在使用此处记录的 Appstats:

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

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

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

有没有办法在保持 Appstats 运行的同时禁用日志消息?

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

谢谢。

4

3 回答 3

6

您可能想查看示例 appstats 配置文件。您可以将 appstats 配置为仅针对您的请求的一部分运行;这应该会减少日志消息的数量,但您仍然可以获得信息。

如果要修补 appstats,则应查看/google/appengine/ext/appstats/recording.py. 如果您使用的是 webapp,通过将其 save 方法替换为 _save 方法来简单地修补appstats应该很容易。

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

于 2010-11-29T17:11:18.657 回答
6

如果其他人有兴趣,这里是我使用罗伯特的猴子补丁建议删除日志记录的方法。

插入 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() 函数的“忽略所有异常”行为,但删除了它周围的所有日志记录。

于 2010-11-30T14:30:36.880 回答
2

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

于 2011-08-31T21:44:50.493 回答