mybatis-plus無法通過logback-spring輸出的解決方法
問題描述
通過官網配置,將mybatis-plus引入spring boot項目中,但是日志隻能在控制臺中輸出,卻無法在logback的日志文件中輸出
// 具體參考網址 // 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中。可以定時寫一個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中使用常規logback-spring配置。
logging: level: com.XXX.mapper: debug
就可以正常輸出sql語句瞭。
到此這篇關於mybatis-plus無法通過logback-spring輸出的解決方法的文章就介紹到這瞭,更多相關mybatis-plus無法通過logback-spring輸出內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 使用log4j2關閉debug日志
- Springboot如何使用logback實現多環境配置?
- Slf4j+logback實現JSON格式日志輸出方式
- JAVA SpringBoot統一日志處理原理詳解
- springboot2.0整合logback日志的詳細代碼