溫馨提示×

溫馨提示×

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

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

mybatis-plus無法通過logback-spring輸出怎么辦

發(fā)布時間:2021-11-13 09:59:54 來源:億速云 閱讀:374 作者:小新 欄目:開發(fā)技術

小編給大家分享一下mybatis-plus無法通過logback-spring輸出怎么辦,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

問題描述

通過官網(wǎng)配置,將mybatis-plus引入spring boot項目中,但是日志只能在控制臺中輸出,卻無法在logback的日志文件中輸出

// 具體參考網(wǎng)址 
// https://mp.baomidou.com/guide/faq.html#%E5%90%AF%E5%8A%A8-mybatis-%E6%9C%AC%E8%BA%AB%E7%9A%84-log-%E6%97%A5%E5%BF%97
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

解決過程

1、點擊進入StdOutImpl方法中查看,此方法是通過System.out.println打印的,logback在非配置情況下無法輸出此內容。
2、System.out.println在logback打印文件中輸出,我查到三種方法

方法一:

System.setOut(new PrintStream(new File("日志路徑")));
System.out.println();

方法二:使用jar包

<dependency>
     <groupId>uk.org.lidalia</groupId>
     <artifactId>sysout-over-slf4j</artifactId>
     <version>1.0.2</version>
 </dependency>

 web.xml 文件中添加

 <listener>
  <listener-class>uk.org.lidalia.sysoutslf4j.context.SysOutOverSLF4JServletContextListener</listener-class>
 </listener>

方法三:spring-boot項目使用nohup命令啟動未指定日志文件輸出,所有日志均會輸出到nohup.out中??梢远〞r寫一個shell腳本,按日期切割nohup.out中內容,棄用logback輸出的日志文件

this_path=$(cd `dirname $0`;pwd)  
cd $this_path  
echo $this_path  
current_date=`date -d "-1 day" "+%Y%m%d"`  
echo $current_date  
// 分割出指定字符大小,到新文件中
split -b +100m -d -a 4 /home/.../nohup.out   /home/.../log/log_${current_date}_  
// 清空nohup.out,等待下一次分割
cat /dev/null > nohup.out

以上3種方法都不太適用于我當前的需求,需要換個角度解決這個問題,比如,放棄使用StdOutImpl來輸出日志

解決方案

放棄使用StdOutImpl輸出日志,去掉log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 配置。在application.yml中使用常規(guī)logback-spring配置。

logging:
 level:
     com.XXX.mapper: debug

就可以正常輸出sql語句了。

看完了這篇文章,相信你對“mybatis-plus無法通過logback-spring輸出怎么辦”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

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

AI