MyBatis打印SQL日志的配置

配置MyBatis打印日志的步骤如下,支持多种日志框架(如Logback、Log4j2等):


一、选择日志框架并添加依赖(以常见组合为例)

1. Logback(推荐)

<dependency>
    <groupId>ch.qos.logbackgroupId>
    <artifactId>logback-classicartifactId>
    <version>1.4.14version>
dependency>
2. Log4j2

<dependency>
    <groupId>org.apache.logging.log4jgroupId>
    <artifactId>log4j-coreartifactId>
    <version>2.23.1version>
dependency>
<dependency>
    <groupId>org.apache.logging.log4jgroupId>
    <artifactId>log4j-slf4j2-implartifactId>
    <version>2.23.1version>
dependency>

二、配置日志文件

1. Logback 配置 (logback.xml)

<configuration>
    
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%npattern>
        encoder>
    appender>

    
    
    
    <logger name="com.example.mapper" level="DEBUG" additivity="false">
        <appender-ref ref="STDOUT"/>
    logger>

    
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
    root>
configuration>
2. Log4j2 配置 (log4j2.xml)


<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
        Console>
    Appenders>

    <Loggers>
        
        
        
        <Logger name="com.example.mapper" level="DEBUG" additivity="false">
            <AppenderRef ref="Console"/>
        Logger>
        
		
		
        <Root level="INFO">
            <AppenderRef ref="Console"/>
        Root>
    Loggers>
Configuration>
3. MyBatis配置文件的配置

<configuration>
    <settings>
        <setting name="logImpl" value="SLF4J"/> 
    settings>
configuration>

三、验证配置

  1. 运行SQL操作:执行MyBatis的数据库查询,观察控制台输出。
  2. 预期日志:应看到类似以下内容,包含SQL语句、参数和结果:
    2024-01-01 12:00:00 [main] DEBUG com.example.mapper.UserMapper.selectUser - ==>  Preparing: SELECT * FROM user WHERE id = ?
    2024-01-01 12:00:00 [main] DEBUG com.example.mapper.UserMapper.selectUser - ==> Parameters: 1(Integer)
    2024-01-01 12:00:00 [main] DEBUG com.example.mapper.UserMapper.selectUser - <==      Total: 1
    

四、常见问题排查

  1. 日志未打印
    • 检查依赖是否冲突(如同时存在多个日志框架)。
    • 确认logger name路径与Mapper接口包名一致。
    • 确保日志级别设置为DEBUG
  2. 日志未打印,检查Log4j2配置文件与mapper的Logger
    • 如果使用的是Log4j2,检查全局配置的status
      
      
      <Configuration status="WARN">
      
    • 检查mapper的Logger配置,要大于等于全局配置
      
      
      <Logger name="com.example.mapper" level="DEBUG" additivity="false">
          <AppenderRef ref="Console"/>
      Logger>
      

通过以上步骤即可正确打印MyBatis的SQL日志。根据实际项目使用的日志框架选择对应配置即可。

你可能感兴趣的:(Mybatis,mybatis,数据库)