欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mybatis-plus无法通过logback-spring输出的解决方法

程序员文章站 2022-03-23 10:04:43
目录问题描述解决过程解决方案问题描述通过官网配置,将mybatis-plus引入spring boot项目中,但是日志只能在控制台中输出,却无法在logback的日志文件中输出// 具体参考网址 //...

问题描述

通过官网配置,将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输出内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!