溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

springboot中jar部署控制臺日志亂碼怎么辦

發(fā)布時間:2021-09-01 13:33:34 來源:億速云 閱讀:890 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹springboot中jar部署控制臺日志亂碼怎么辦,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

spring boot jar部署控制臺日志亂碼

問題描述

spring boot jar包部署,通過java -jar 命令運(yùn)行.jar文件

代碼中通過變量log輸出到控制臺的中文,亂碼,但是僅僅是在運(yùn)行jar時才亂碼;而在用eclipse debug時,正常

代碼中通過System.out.println()輸出的中文,不論是否是通過jar運(yùn)行,都正常

日志使用的是默認(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é)點(diǎn)下增加-Dfile.encoding=UTF-8,無用;或者在運(yùn)行.jar包時,增加參數(shù)-Dfile.encoding=UTF-8,依然無用。

springboot打包后在Windows控制臺運(yùn)行中文亂碼

springboot打包之后,如果通過java -jar在Windows控制臺直接運(yùn)行,則會出現(xiàn)中文亂碼,保存到數(shù)據(jù)庫里面的也是亂碼,通過在idea中直接運(yùn)行不會出現(xiàn)亂碼。

為了解決在Windows控制臺運(yùn)行中亂碼,在運(yùn)行腳本加入 -Dfile.encoding=utf-8運(yùn)行參數(shù)

例如

java -jar -Dfile.encoding=utf-8 app-0.0.1-SNAPSHOT.jar

以上是“springboot中jar部署控制臺日志亂碼怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI