在内部函数Django中将请求信息记录到文件中

问题描述

| 我正在使用简单的记录器将调试信息保存到文件中。 我的问题是我希望日志中的每一行都以请求信息作为前缀(例如,用户,URL),并且视图激活的内部函数无法访问请求参数。 我想过 将请求传递给每个功能-非常糟糕 爬回回溯堆栈,在局部变量中搜索\“ request \”-不知道如何执行此操作,或者不确定它是否太慢(例如,每个请求最多记录100次) 用\“ with \”语句包围视图函数,该语句将所有请求信息保留在全局变量(键=线程ID)中-不建议作为安全风险(http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser)并要求缩进视图中的整个代码一个优雅的解决方案吗?     

解决方法

我相信您想使用将请求属性添加到日志消息的过滤器。这个软件包似乎解决了这个问题:http://pypi.python.org/pypi/django-requestlogging     ,这可能不完全是您想要的,但是django-sentry提供了您描述的功能(还具有漂亮的Web界面)。这可能比尝试推出自己的解决方案要容易。