Log4j日志中文乱码,本地运行正常,服务器日志乱码,服务器能正常显示中文,maven项目

本文记录了一位开发者在将SpringMVC项目部署到服务器后,遇到日志中文乱码的问题。尝试了修改IDEA设置、Tomcat配置和Linux系统编码等方法无效。最终发现问题出在Maven打包时的编码设置。通过在Pom.xml中添加UTF-8编码设置,解决了乱码问题。
摘要由CSDN通过智能技术生成

问题

SpringMVC项目,采用log4j作为日志记录框架,在本地测试运行,idea的控制台,输出的文件都没有任何问题。
正常idea运行

但是放到了服务器上之后,发现打印的日志,中文出现乱码,不是单纯的问号,而是一系列从没见过的汉字。例如:
乱码图片

尝试办法

于是我就开始一顿搜索,各种解决乱码的办法:
idea方面:更改idea设置,更改idea64.exe.vmoptions文件等
tomcat方面:更改server.xml,更改logging.properties等
linux方面:更改系统编码:locale等
但是都没有用

解决办法

首先要了解以下内容,不要一上来就开始咔咔咔搜索
在这里,我做个记录,若有和我一样遭遇的,可以借鉴一下

  1. 什么情况下会出现乱码:服务器上运行时,打印的日志会乱码
  2. 本地运行会不会乱码:不会
  3. 服务器上,输入date,会显示中文吗:会判断服务器是否支持中文
  4. tomcat日志(tomcat/logs/catalina.out)会显示中文吗:会判断tomcat是否支持中文
    排除掉服务器和tomcat的问题,那么就只剩下项目本身的问题了
    既然本地可以运行,放到服务器就运行有问题,那就是服务器和本地的项目有差别。
    后来才想起来,可能是Maven有问题
    因为服务器上的项目,是用Maven打包放上去的。项目可以在本地运行,说明项目本身没有问题,那就是打包方式有问题。
    在Pom.xml文件中设置打包编码为UTF-8:
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  </properties>

重新打包,上传服务器,结果就好了!!!
最终结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值