spring boot jar部署控制臺日志亂碼的解決
spring boot jar部署控制臺日志亂碼
問題描述
spring boot jar包部署,通過java -jar 命令運行.jar文件
代碼中通過變量log輸出到控制臺的中文,亂碼,但是僅僅是在運行jar時才亂碼;而在用eclipse debug時,正常
代碼中通過System.out.println()輸出的中文,不論是否是通過jar運行,都正常
日志使用的是默認(rèn)的logback,未使用log4j
解決
1、resources文件夾新建logback.xml(文件名不可修改)
內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?> <!-- spirng boot 默認(rèn)使用logback,默認(rèn)會讀取resources文件夾下的名為logback.xml的文件 zhangyu 20180807--> <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>
2、首先,spring boot 默認(rèn)使用logback
默認(rèn)讀取resources/下名為logback.xml的日志配置文件,有則讀取,沒有則使用默認(rèn)。
3、其次,logback.xml,將
<charset>UTF-8</charset>
注釋掉或刪除
4、如果,不配置logback.xml
使用默認(rèn)的配置,那么部署jar包,java -jar xxx.jar,代碼中l(wèi)og變量輸出的中文,亂碼;如果,配置了logback.xml,但是charset使用UTF-8,那么中文依然亂碼;只有使用logback.xml,且,charset刪除掉,才能確保中文正常。
5、針對這個非常具體的問題
我嘗試過,且無用的做法有,在pom的plugin–>spring-boot-maven-plugin–>configuration節(jié)點下增加-Dfile.encoding=UTF-8,無用;或者在運行.jar包時,增加參數(shù)-Dfile.encoding=UTF-8,依然無用。
springboot打包后在Windows控制臺運行中文亂碼
springboot打包之后,如果通過java -jar在Windows控制臺直接運行,則會出現(xiàn)中文亂碼,保存到數(shù)據(jù)庫里面的也是亂碼,通過在idea中直接運行不會出現(xiàn)亂碼。
為了解決在Windows控制臺運行中亂碼,在運行腳本加入 -Dfile.encoding=utf-8運行參數(shù)
例如
java -jar -Dfile.encoding=utf-8 app-0.0.1-SNAPSHOT.jar
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot中的配置類(@Configuration)
這篇文章主要介紹了SpringBoot中的配置類(@Configuration),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06springboot中使用ElasticSearch的詳細(xì)教程
這篇文章主要介紹了ElasticSearch在springboot中使用的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-05-05Java內(nèi)存模型相關(guān)知識總結(jié)
這篇文章主要介紹了Java內(nèi)存模型相關(guān)知識總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10Zookeeper中如何解決zookeeper.out文件輸出位置問題
這篇文章主要介紹了Zookeeper中如何解決zookeeper.out文件輸出位置問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04Java.toCharArray()和charAt()的效率對比分析
這篇文章主要介紹了Java.toCharArray()和charAt()的效率對比分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10