【发布时间】:2016-06-01 09:53:07
【问题描述】:
我有 Django 应用程序在 Docker 容器内的 uwsgi 后面运行。 uwsgi 是通过 Dockerfile 中的 ENTRYPOINT 和 CMD 参数启动的。我成功地将它连接到分离的 Nginx 容器并在浏览器中检查预期结果。
到目前为止,一切都很好。
现在我想在 Django 容器中查看应用程序日志。但我无法找到 Django 设置 LOGGING 变量和 uwsgi 开关的正确组合。我只看到uwsgi 标准日志,这对我来说没用。
有可能吗?在我看来,我必须制作一些包装 BASH 脚本,例如:
uwsgi --socket 0.0.0.0:80 --die-on-term --module myapp.wsgi:application --chdir /src --daemonize /dev/null
tail -f /common.log```
... 在 Django 中设置 LOGGING 以写入 /common.log 并将其尾部输出。
有更优雅的解决方案吗?
2016 年 2 月 24 日更新:
是的,这是可能的。我在第一次测试中的某个地方犯了错误。我在https://github.com/msgre/uwsgi_logging 上发布了工作示例。
【问题讨论】:
-
您尝试过哪些
LOGGING选项? -
基本上
StreamHandler,到标准输出和标准错误。我用manage.py runserver检查它,日志是可见的(在标准输出上)。当我在后面运行uwsgi时,我只看到 uwsgi 日志... 'handlers': { 'common': { 'class':'logging.StreamHandler', 'stream': sys.stderr, # 和 sys.stdout “格式化程序”:“简单”,“级别”:“信息”,},},
标签: django logging nginx docker uwsgi