ibatis运行的SQL语句的输出——通过配置log4j
如下这些调试信息在生产环境是不需要的,这里讲解一下log4j的配置方式:
在log4j.properties文件配置如下内容即可输入SQL语句了
# Preparing Statement: SQL
log4j.logger.java.sql.Connection = DEBUG
# Executing Statement: SQL / Parameters / Types
log4j.logger.java.sql.Statement = DEBUG
log4j.logger.java.sql.PreparedStatement = DEBUG
# ResultSet: Header / Result
log4j.logger.java.sql.ResultSet = DEBUG (日志级别:DEBUG < INFO < WARN < ERROR < FATAL,因此 将日直接别设置为INFO即可)下面是配置详解,够详细吧!
配置这一句就会输出SQL
log4j.logger.java.sql.Connection = DEBUG
[DEBUG] com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl
{conn-100006} Connection
[DEBUG] com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl
{conn-100006} Preparing Statement: SELECT id, name FROM t_sys_role WHERE role_id = ?
配置这两句就会输出调用SQL的参数值和类型
log4j.logger.java.sql.Statement = DEBUG
log4j.logger.java.sql.PreparedStatement = DEBUG
[DEBUG] com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl
{pstm-100007} Executing Statement: SELECT id, name FROM t_sys_role WHERE role_id = ?
[DEBUG] com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl
{pstm-100007} Parameters: [500002]
[DEBUG] com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl
{pstm-100007} Types: [java.lang.Integer]
配置这一句就会输出调用SQL的执行结果
log4j.logger.java.sql.ResultSet = DEBUG
[DEBUG] com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl
{rset-100008} ResultSet
[DEBUG] com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl
{rset-100008} Header: [id, name]
[DEBUG] com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl
{rset-100008} Result: [810001, 首页]
[DEBUG] com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl
{rset-100008} Result: [810002, 注册]
[DEBUG] com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl
{rset-100008} Result: [810003, 下载]
执行结果一般数据比较多,最好不要输出,所以配这三条就好了
--------------------------------------------------------邪恶分割线--------------------------------------------------------
下面是扒网友的记录:
将ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运行的sql语句,方便调试:
### 设置Logger输出级别和输出目的地 ###
log4j.rootLogger=debug,stdout,logfile
### 把日志信息输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
### 把日志信息输出到文件:jbit.log ###
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=jbit.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n
###显示SQL语句部分
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
### 设置Logger输出级别和输出目的地 ###
log4j.rootLogger=debug,stdout,logfile
### 把日志信息输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
### 把日志信息输出到文件:jbit.log ###
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=jbit.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n
###显示SQL语句部分
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
本文介绍如何通过配置log4j来输出ibatis运行时的SQL语句及相关调试信息,包括连接、参数及结果集等,并提供详细的配置示例。
3311

被折叠的 条评论
为什么被折叠?



