springboot 部分中文乱码,log.info 的乱码

springboot 部分中文乱码,log.info 的乱码

img

这个打印的乱码
log.info("rest 还剩下这么多 {}",rest);

但是她用 {} 传入的参数打印的就不是乱码。。
PromoDO promoDO = promoDOMapper.selectByPrimaryKey(promoId);
log.info("promoDO {}",promoDO);

解决方法:

1、resources文件夹新建logback.xml(文件名不可修改),内容如下

<?xml version="1.0" encoding="UTF-8"?>
<!-- spirng boot 默认使用logback,默认会读取resources文件夹下的名为logback.xml的文件 -->
<configuration debug="false">
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
    <property name="LOG_HOME" value="C:/loghome" />
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <!-- <charset>UTF-8</charset> -->
        </encoder>
    </appender>
 
    <!-- 日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>


可参考下文试试解决乱码问题

在pom.xml文件中 <plugin> </plugin>标签中添加如下配置,解决了问题
        <configuration>
            <fork>true</fork>
            <!--增加jvm参数-->
            <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
        </configuration>

具体位置:

img

是不是你的项目默认编码跟这个不统一?