1

我正在尝试在视图的 Django (mod_wsgi) 中进行一些日志记录。然而,我想这样做,这样客户端就不会像mod_perl中可用的 perlcleanuphandler 阶段那样被阻止。请注意“它用于在服务请求后立即执行一些代码(客户端离开)”这一行。这正是我想要的。

我想为客户提供服务,然后我想进行日志记录。mod_wsgi 或 Django 中的代码是否有一个很好的插入点?我在这里这里查看了建议。但是,在这两种情况下,当我在 url 上放置一个简单time.sleep(10)的 curl/wget 时,curl 都不会在 10 秒内返回。

我什至尝试__del__按照其中一条评论的建议将 time.sleep 放入 HttpResponse 对象中的方法中,但仍然没有骰子。

我知道我可能可以将日志记录数据放入队列并进行一些背景处理来存储日志,但如果有其他更简单/更容易的方法,我想避免这种方法。

有什么建议么 ?

4

1 回答 1

0

请参阅以下位置的文档:

http://code.google.com/p/modwsgi/wiki/RegisteringCleanupCode

对于特定于 WSGI(不是特定于 mod_wsgi)的方式。

正如其他人指出的那样,Django也可能有自己的做事方式,尽管我不知道在所有响应内容写回客户端之后是否会触发它。

于 2012-08-20T20:14:32.750 回答