Syslog 乱码通常不是“日志本身坏了”,而是字符编码、传输方式或显示终端不一致导致的。下面按常见原因给你一个排查与修复清单。
??? / 方块:通常是编码不支持%E4%B8%AD%E6%96%87:被 URL 编码\x00、\xff:二进制或编码错配现象:本地看正常,远程 tail 乱码
✅ 修复:
locale
确保包含 UTF-8,例如:
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
若不是:
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8
终端工具(SecureCRT / Xshell / Terminal)也要设为 UTF-8
现象:Java / Python / Go 程序日志乱码
✅ 修复:
-Dfile.encoding=UTF-8
logging.basicConfig(encoding='utf-8')
确保模板使用 UTF-8:
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
或自定义模板:
template(name="utf8" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg%\n")
重启:
sudo systemctl restart rsyslog
现象:A 机器正常,B 机器乱码
✅ 修复:
现象:
msg=hello%20%E4%B8%AD%E6%96%87
✅ 解码:
python3 -c "import urllib.parse;print(urllib.parse.unquote('你的字符串'))"
或修改程序不要 URL 编码
检查:
file /var/log/syslog
转换:
iconv -f GBK -t UTF-8 /var/log/syslog > syslog.utf8
你可以补充:
我可以直接给你对应配置文件修改方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。