当前位置: 代码迷 >> 综合 >> springboot + log4j2 控制台日志打印 sql 问题
  详细解决方案

springboot + log4j2 控制台日志打印 sql 问题

热度:62   发布时间:2023-11-06 11:58:50.0

springboot 自带 日志打印  logback  如果使用log4j2 可能回抛出

Logging system failed to initialize using configuration from 'classpath:log4j2.xml'
java.lang.IllegalStateException: Logback configuration error detected: 

解决办法也是百度来的 但是忘了是那个网址了 只让你 忽略一个

配置xml 时候    spring-boot-starter-web 也要忽略jar包  mybatis-spring-boot-starter 也要忽略jar包

说还有 加载顺序问题 如果在头忽略就可以下面不写  我没配置成功

pom.xml  部分代码如下

<!-- spring boot的相关启动 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!-- 去掉默认的,不然log4j2没效果 --><!--去除springboot对logback的依赖 --><exclusions><exclusion><artifactId>logback-access</artifactId><groupId>ch.qos.logback</groupId></exclusion><exclusion><artifactId>logback-core</artifactId><groupId>ch.qos.logback</groupId></exclusion><exclusion><artifactId>logback-classic</artifactId><groupId>ch.qos.logback</groupId></exclusion></exclusions></dependency><!-- 热部署 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional><scope>true</scope></dependency><!-- spring boot整合mybatis --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><!-- 打印日志   log4j2  需要   是排除多余的jar包 springboot 默认使用logback     log4j引入时候需要排除    --><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions><version>1.3.0</version></dependency><!-- log4j --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency>

配置log4j2  控制台打印sql语句  

src/main/resource 下创建 (log4j2.xml 配置 不是全的 我就是想看个sql 不想要那么多配置  配置了好多都失败了 也只配置了properties文件  不是好使 现在不清楚到底那个是好使了 就全都配置)

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO" monitorInterval="1800"><appenders><Console name="consolePrint" target="SYSTEM_OUT"><PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n" /></Console></appenders><loggers><!-- 将业务dao接口填写进去,并用控制台输出即可 --><logger name="example.moudels.*.mapper" level="DEBUG" additivity="false"><appender-ref ref="consolePrint"/></logger><root level="info"><appender-ref ref="consolePrint" /></root></loggers>
</Configuration>

application.properties文件添加

logging.config=classpath:log4j2.xml

 #levle后面的是你的mapper 接口的包名是dao层的dao接口 不是mapper.xml文件他俩可以放到一起的但是有的单独配置出来
logging.level.example.moudels.*.mapper=debug 
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl