LOGback设置SQL参数打印

一.hibernate中设置SQL参数打印:

(主要是第一句)

<logger name="org.hibernate.type.descriptor.sql.BasicBinder"  level="TRACE" />  

<logger name="org.hibernate.type.descriptor.sql.BasicExtractor"  level="DEBUG" />  
<logger name="org.hibernate.SQL" level="DEBUG" />
 <logger name="org.hibernate.type" level="INFO" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />  

 <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />  


二.mybatis中设置SQL参数打印

第一种方法:(1)在sqlMapConfig.xml文件中,增加日志头部<setting name="logPrefix" value="dao."/>  

                 (2)在logback.xml中,增加<logger name="dao" level="debug" additivity="false">
                                                             <appender-ref ref="debug" />
                                                       </logger>

第二种方法:在logback.xml中,增加<logger name="com.ycdz.mapper" level="debug" additivity="false">
                                                    <appender-ref ref="debug" />
                                               </logger>

                   打印所有的mapper类sql语句

 

说明:(1)不管是在控制台打印,还是输出到日志文件中,level一定要是debug

        (2)第一种方法中的头部dao.,记得要加.    要与<logger name="dao" 中name一致。。。为什么要加.?

           因为<logger name="dao" level="debug" additivity="false">意思是:为所有开头为dao的类打印sql语句,加了.之后,所有mapper类名称变成dao.com.ycdz.mapper.xx,不加.就变成daocom.ycdz.mapper.xx就对应不上了(原因猜的,表述有问题,)

        (3)第一种和第二种方法原理上应该一致的,我猜的,虽然没有研究。


### 如何配置 Logback打印 SQL 语句 #### 配置 `logback-spring.xml` 文件 为了使 MyBatis 的 SQL 日志能够通过 Logback 正确记录,可以在项目的资源目录下创建或修改名为 `logback-spring.xml` 的文件。此文件用于定义日志框架的行为。 ```xml <configuration> <!-- 定义日志输出格式 --> <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n"/> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!-- 文件输出 --> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>logs/myapp.log</file> <append>true</append> <encoder> <pattern>%date [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <!-- 设置 mybatis 和 jdbc 的日志级别为 DEBUG --> <logger name="org.mybatis.spring.MyBatisLoggingConfigurer" level="DEBUG"/> <logger name="java.sql.Connection" level="DEBUG"/> <logger name="java.sql.Statement" level="DEBUG"/> <logger name="java.sql.PreparedStatement" level="DEBUG"/> <!-- 根日志设置 --> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="FILE"/> </root> </configuration> ``` 上述 XML 片段设置了多个 logger 来捕获不同类型的数据库交互事件,并将其日志级别设为 DEBUG[^4]。这允许更详细的调试信息被捕获并写入到控制台以及指定的日志文件中。 #### 修改应用程序属性文件 (`application.yml`) 为了让 Spring Boot 应用识别自定义的日志配置文件,在应用的主要配置文件 `application.yml` 中添加如下条目: ```yaml logging: config: classpath:logback-spring.xml ``` 这样就指定了要使用的特定 logback 配置文件的位置。 #### 使用拦截器增强功能 除了调整日志配置外,还可以利用 AOP 或者 MyBatis 提供的插件机制来进一步定制化 SQL 输出逻辑。比如可以编写一个简单的 MyBatis 插件来截取所有的 PreparedStatement 对象,在它们被执行之前将完整的 SQL 文本连同参数一起记录下来[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值