我正在通过Kuberenetes在Google Cloud上部署容器,这些容器是运行它们的django项目和uwsgi。
我正在使用堆栈驱动器日志记录工具查看日志,问题是所有条目都被视为严重级别ERROR
,即使它们不是错误。看起来uwsgi
的日志被写成了stderr
或者类似的东西。
在图片中你可以看到django使用了INFO
级别,但它被堆栈驱动器作为ERROR
接收。
这就是我设置uwsgi的方法。
[uwsgi] master = true socket = :3031 chdir = . wsgi-file = docker.wsgi processes = 4 threads = 2 socket-timeout = 90 harakiri = 90 http = :8000 env = prometheus_multiproc_dir=multi enable-threads = yes lazy-apps = yes pidfile=/tmp/project-master.pid
发布于 2017-05-25 23:22:42
写入stderr
的Kubernetes日志总是被标记为错误--这是在堆栈驱动程序日志代理中硬编码的。类似地,写入stdout
的日志总是用INFO标记的。
如果您可以将应用程序配置为将非错误日志消息写入stdout
,请这样做。另一种可能的方法是将日志写入一个文件,在同一pod中作为sidecar容器对该文件运行"tail -f
“命令,然后在sidecar容器下的Stackdriver logs Viewer中查找您的日志。最后,您可以考虑将日志直接写入Stackdriver Logging API,这样您就可以完全控制每个条目的内容。
发布于 2019-05-27 05:22:08
This answer帮助我找到了这个问题的解决方案。使用logger-req=stdio
uWSGI日志选项可以在堆栈驱动程序中获得正确的级别。
uwsgi.ini
示例
[uwsgi]
logger-req=stdio
https://stackoverflow.com/questions/44005047
复制相似问题