解决Linux服务启动Java程序日志文件出现中文乱码的问题

自己编写Java程序,注册为Linux Service服务,通过 service xxx start 启动后,发现日志文件中文乱码,如果不使用服务启动,则没有乱码。

出现此问题可能是系统环境变量设置不正确,也可能是服务启动工具没有添加中文的设置,最终的结果导致以服务形式启动的程序输出的日志文件乱码,在操作系统本身支持中文的情况下 排查方法如下:

1、首先查看自己系统中环境变量LANG的设置

       使用命令:echo $LANG,如下所示

[root@localhost data]# echo $LANG
zh_CN.UTF-8

        如果输出的不是以上的结果,则需要在 系统 profile文件中进行设置,步骤如下:

        vim /etc/profile

        在文件最后写入:

        export LANG=zh_CN.UTF-8

        保存后,重新加载 profile文件:source /etc/profile,重新查看LANG设置即可看到UTF-8设置。

2、查看服务启动工具对环境变量的使用

    使用命令 :grep env /sbin/service

    

    将LANG="$LANG" 配置在env -i 后面,最后的结果如下所示,操作过程:

    编辑service文件

    vim /sbin/service

    在env -i 后面加上 LANG="$LANG"  。

    添加后  重启操作系统

    重新运行服务即可解决 日志文件乱码的问题。

猜你喜欢

转载自my.oschina.net/ruoli/blog/1648460