Python中supervisor中文日志乱码问题如何解决?

Python中supervisor中文日志乱码问题如何解决?
这个问题通常是因为Supervisor的默认编码设置与你的应用日志编码不匹配导致的。
核心解决方案是修改Supervisor配置文件的编码设置:
-
找到你的Supervisor配置文件(通常是
/etc/supervisor/supervisord.conf或/etc/supervisord.conf)。 -
在
[supervisord]部分添加或修改以下两行:[supervisord] environment=LANG="zh_CN.UTF-8", LC_ALL="zh_CN.UTF-8" logfile=/var/log/supervisor/supervisord.log logfile_maxbytes=50MB logfile_backups=10 loglevel=info pidfile=/var/run/supervisord.pid childlogdir=/var/log/supervisor关键点是
environment这一行,它设置了子进程的环境变量,确保使用UTF-8编码。 -
如果你是通过
supervisorctl查看日志,确保你的终端或SSH客户端也使用UTF-8编码(比如设置LANG=zh_CN.UTF-8)。 -
重启Supervisor服务使配置生效:
sudo supervisorctl reload # 或 sudo systemctl restart supervisord
如果问题依然存在,检查你的Python应用本身是否正确地输出了UTF-8编码的日志。 可以在Python脚本开头显式设置编码:
import sys
import logging
# 强制标准输出使用UTF-8
sys.stdout.reconfigure(encoding='utf-8')
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[logging.StreamHandler(sys.stdout)]
)
总结建议:确保Supervisor环境变量和Python应用编码统一为UTF-8。
supervisor 日志只是捕获你的控制台 info,乱码应该跟你的项目有关把
可能是 linux 的原因,要打语言包补丁
talf -f 和 supervisorctl tail 都是正常的
talf -f 和 supervisorctl tail 都是正常的
你不用 supervisord 跑你的项目,控制台乱码吗
楼上真摸鱼,每个帖子都看到你
我每天都摸-------咸鱼, 最近脚气好像又犯了, 香菇蓝瘦…
#8 当你在凝视深渊的时候,深渊也正在凝视着你 兄弟, 你不摸鱼怎么知道我摸鱼.
解决了,用 pip 版本就挺好
怎么解决的… 他们的 web ui 有问题, 在 taillog 的页面刷新一次中文可以正常, 所以我用了 chrome 插件强制指定了这个站点 utf8 编码, 但还是只能 tail 的, 看历史 log 的就不行
web 端乱码不能忍受,刚好需要,看到该问题~
centos7,yum 安装的原来的版本是 3.1.4,现可以升级到 3.4.0 版本( yum 源最新版本),已经解决此问题,已不需 pip (但 pip 安装新版本也同样可以解决)bash<br>Running transaction<br> 正在更新 : supervisor-3.4.0-1.el7.noarch 1/2<br> 清理 : supervisor-3.1.4-1.el7.noarch 2/2<br> 验证中 : supervisor-3.4.0-1.el7.noarch 1/2<br> 验证中 : supervisor-3.1.4-1.el7.noarch 2/2<br><br>更新完毕:<br> supervisor.noarch 0:3.4.0-1.el7<br><br>完毕!<br>


