关于 uWSGI 的 log,我已经写过好几篇文章了。本篇是一个总结,希望把我这几年使用 uWSGI 中积累的关于 log 选项的经验做一个汇总介绍。
有兴趣可以先读一读这几篇文章,更多细节在这里:
阅读更多在上一篇文章 Flask+uWSGI logging rotate:重要补充 中,我仔细分析了 uWSGI 中处理 logging rotate 的各种限制和解决方案,在文章最后,我提到:
因此,我们需要一个终极解决方案来解决这个问题。这需要新开一篇文章来说明。
现在,终极解决方案 来了。
阅读更多我在 Flask+uWSGI 的 Logging 支持 一文中详细讲解过关于 Flask+uWSGI 中的 logging 支持情况。但还不够,这篇文章里面做一些重要补充。
阅读更多- 2020-01-27 更新 增加相关阅读和 Flask+uWSGI Logging rotate:重要补充。
我在 部署Flask + uWSGI + Nginx 一文中详细讲解了如何部署一个 Flask 应用。但这篇文章忽略了生产环境的一个重要的功能: Logging 。
阅读更多Flask 在 Debug 模式下启动的时候,会被初始化两次。看下面的代码:
1from app import app 2import time 3 4if __name__ == '__main__': 5 print(time.time()) 6 app.run(port=5000, debug=True)输出:
阅读更多- 2020-01-27 更新 增加相关阅读和 Flask+uWSGI Logging rotate:重要补充。
uWSGI 可以使用
阅读更多--logto / --logto2 / --daemonize这几个参数来指定把 log 写入普通文件。但普通文件管理起来比较麻烦,我们可以利用 Ubuntu/CentOS 中自带的 Rsyslog 来实现日志管理。本文以 Ubuntu 16.04 为例。有时我们在一台机器上部署多个 uWSGI 服务,并提供 HTTPS 支持。使用
阅读更多proxy_pass代替uwsgi_pass是很简单的方案:在把 Flask 写的应用通过
Supervisor+uWSGI部署到正式服务器上时,出现了这样的错误:Unable to print the message and arguments - possible formatting error.
或者
UnicodeEncodeError: 'ascii' codec can't encode characters in position 24-25: ordinal not in range(128)
有趣的是,直接在 Python 环境下运行的时候,没有这样的错误。使用
uwsgi uwsgi.ini这种方式来运行也正常。由于对 unicode 的支持不够完善,这 …
阅读更多