mybatis-plus無法通過logback-spring輸出的解決方法
問題描述
通過官網(wǎng)配置,將mybatis-plus引入spring boot項(xiàng)目中,但是日志只能在控制臺中輸出,卻無法在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、點(diǎn)擊進(jìn)入StdOutImpl方法中查看,此方法是通過System.out.println打印的,logback在非配置情況下無法輸出此內(nèi)容。
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項(xiàng)目使用nohup命令啟動未指定日志文件輸出,所有日志均會輸出到nohup.out中。可以定時寫一個shell腳本,按日期切割nohup.out中內(nèi)容,棄用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種方法都不太適用于我當(dāng)前的需求,需要換個角度解決這個問題,比如,放棄使用StdOutImpl來輸出日志
解決方案
放棄使用StdOutImpl輸出日志,去掉log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 配置。在application.yml中使用常規(guī)logback-spring配置。
logging:
level:
com.XXX.mapper: debug
就可以正常輸出sql語句了。
到此這篇關(guān)于mybatis-plus無法通過logback-spring輸出的解決方法的文章就介紹到這了,更多相關(guān)mybatis-plus無法通過logback-spring輸出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
jvm內(nèi)存溢出解決方法(jvm內(nèi)存溢出怎么解決)
jvm內(nèi)存溢出解決方法,詳細(xì)內(nèi)容看下面解釋2013-12-12
eclipse中自動生成構(gòu)造函數(shù)的兩種方法
下面小編就為大家?guī)硪黄猠clipse中自動生成構(gòu)造函數(shù)的兩種方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
Java關(guān)鍵字synchronized原理與鎖的狀態(tài)詳解
在Java當(dāng)中synchronized關(guān)鍵字通常是用來標(biāo)記一個方法或者代碼塊。本文將通過示例為大家詳細(xì)介紹一下Synchronized的各種使用方法,需要的可以參考一下2022-08-08
Java項(xiàng)目部署的完整流程(超詳細(xì)!)
我相信很多Java新手都會遇到這樣一個問題,跟著教材敲代碼,很容易,但是讓他完整的實(shí)現(xiàn)一個應(yīng)用項(xiàng)目卻不會,下面這篇文章主要給大家介紹了關(guān)于Java項(xiàng)目部署的完整流程,需要的朋友可以參考下2022-07-07

