如何关闭Mybatis的DEBUG log打印

log4j的设置问题:

 1 additivity="false"   //不在console窗口打印。默认为true。


在log4和logback冲突时,Mybatis等软件还是使用logback的配置来控制LOG的打印,这时,不管怎么配置Log4.xml都关闭不了对应的log。

LOG太多也很烦人的。有时候甚至会因为打印过多影响性能,或者把机器打爆。

需要在src\main\resources\目录中添加如下的logback.xml文件和mybatis-config.xml文件来进行控制。

logback.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>  
  
<configuration>  
     <property name="APP_Name" value="cptIdeUI" />     
     <contextName>${APP_Name}</contextName>    
  
 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">  
  <layout class="ch.qos.logback.classic.PatternLayout">  
   <pattern>[%d{yyyyMMdd HH:mm:ss-SSS}] %-5level [%thread][%logger:%line]- %msg%n</pattern>  
  </layout>  
  <!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level>   
   </filter> -->  
 </appender>  
   
 <appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">  
  <discriminator>  
   <key>filename</key>  
   <DefaultValue>c:/test</DefaultValue>  
  </discriminator>  
  <sift>  
   <appender name="FILE"  
    class="ch.qos.logback.core.rolling.RollingFileAppender">  
    <file>C:/test.log</file>  
    <prudent>false</prudent>  
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
     <FileNamePattern>${filename}-%d{yyyyMMdd}.%i.log.gz</FileNamePattern>  
     <maxHistory>30</maxHistory>  
     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
      <maxFileSize>20MB</maxFileSize>  
     </timeBasedFileNamingAndTriggeringPolicy>  
    </rollingPolicy>  
    <layout class="ch.qos.logback.classic.PatternLayout">  
     <ImmediateFlush>false</ImmediateFlush><!-- 缓存 -->  
     <pattern>[%d{yyyyMMdd HH:mm:ss.SSS}] %-5level [%thread][%logger:%line]- %msg%n</pattern>  
    </layout>  
   </appender>  
  </sift>  
 </appender>  
    
 <!--  过滤第三方日志-->  
 <logger name="org.apache.cxf" level="error"/>  
   
 <!-- 开发环境level设置为ALL打印和记录所有日志,生成环境建议修改为ERROR或WARN避免产生大量日志 -->  
 <root level="info">  
  <appender-ref ref="SIFT"></appender-ref>  
  <appender-ref ref="STDOUT"></appender-ref>  
 </root>  
   
</configuration> 

mybatis-config.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE configuration  
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>  
        <setting name="logImpl" value="LOG4J"/>  
    </settings>  
</configuration>



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你的 MyBatis 日志打印 SQL 语句,可以按照以下步骤进行排查: 1. 确认配置文件中是否开启了日志记录,并且日志级别设置为 DEBUG。 示例配置: ```xml <configuration> <settings> <setting name="logImpl" value="LOG4J"/> </settings> <typeAliases> <typeAlias alias="Author" type="domain.blog.Author"/> <typeAlias alias="Blog" type="domain.blog.Blog"/> <typeAlias alias="Comment" type="domain.blog.Comment"/> </typeAliases> <mappers> <mapper resource="org/mybatis/example/BlogMapper.xml"/> </mappers> <plugins> <plugin interceptor="org.mybatis.example.ExamplePlugin"> <property name="pluginProperty" value="100"/> </plugin> </plugins> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="org/mybatis/example/BlogMapper.xml"/> </mappers> <logging> <logImpl>LOG4J</logImpl> <level>DEBUG</level> </logging> </configuration> ``` 2. 确认是否使用了正确的日志实现。 MyBatis 支持多种日志实现,如 Log4jLog4j2、JDK Logging、Commons Logging 等。确保使用了你所设置的日志实现,并且该日志实现的配置文件中也开启了 DEBUG 级别的日志记录。 3. 确认是否使用了正确的日志记录器名称。 如果你使用的是 Log4j,那么你需要在配置文件中指定正确的日志记录器名称。例如,下面的配置文件指定了用于 MyBatis 的记录器名称: ```xml <configuration> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"/> </layout> </appender> <logger name="org.mybatis" additivity="false"> <level value="DEBUG"/> <appender-ref ref="STDOUT"/> </logger> </log4j:configuration> </configuration> ``` 4. 确认是否使用了正确的日志引入方式。 在使用 Maven 依赖管理工具时,需要确认是否将你所使用的日志实现和 MyBatis日志模块同时引入,例如: ```xml <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.30</version> </dependency> </dependencies> ``` 以上是 MyBatis 日志打印 SQL 的可能原因,你可以根据实际情况进行排查。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值