python - Django:关闭 http 响应消息的控制台输出

标签 python django http response

所以我们用 django 制作了一个应用程序,它在每次收到请求时都会在控制台上打印所有这些 http 响应消息。

[Date String] 'GET /urlpath/..blah blah ' 200 216
[Date String] 'DELETE /anotherurl/..blah blah ' 200 205 
...
..

我们已禁用所有记录器输出。设置调试=假。尝试过“python manage.py runserver --verbosity 0”。甚至尝试将 sys.stdout 更改为 NullDevice() 类。然而,我们似乎无法关闭这些使服务器缓慢运行的响应消息。所有其他消息都被关闭,除了这些。有什么建议么?

我意识到 django 内部网络服务器仅用于开发而不用于生产,但我们希望仅使用开发版本本身就可以获得相当快的速度(而不必深入了解在 Apache 后面部署 django 的复杂性/lighthttpd)。

最佳答案

你可以让控制台日志记录打开,但是用这个小补丁你可以抑制像这样的嘈杂线路

GET /urlpath/..blah blah ' 200 216
...

完全,所有的 HTTP 结果代码 = 200。 在您的站点包或 VirtualEnv(如果您正在使用它)目录中,转到文件夹结构 django/core/servers/basehttp.py

然后转到 类 WSGIRequestHandler, 函数 def log_message(self, format, *args)

之后

# Don't bother logging requests for admin images or the favicon.
if (self.path.startswith(self.admin_media_prefix)
        or self.path == '/favicon.ico'):
    return

插入

# START ----- Don't show page requests which have run successfully
if args[1] == '200':
    return
# END ----- Don't show page requests which have run successfully

这是 Python 2.7.3、Django 1.4.3 的肮脏解决方法,我也对干净的自定义感兴趣:-)

关于python - Django:关闭 http 响应消息的控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6175030/

相关文章:

python - For循环打印旧值和旧值的总和

jquery - 通过 JQuery .val() 将多个数据字段从 <select multiple> 传递到 Django formfield

python - 在 django 中使用 python 格式化字符串

http - 优雅关闭 node.JS HTTP 服务器

javascript - 如何从 Reactjs 调用 Web 服务

python - 无论鼠标单击如何,psychopy 鼠标跟踪都会返回 true

Python Pandas 按列分组数据框/按字符串列求和整数列

python - flask 301 响应

python - Django Heroku,服务器不支持 SSL,但需要 SSL

c# - 从另一个 Azure Function 启动 Azure Function 的最佳实践