java 日志打印sql语句

用的mybatis.xml和log4j.properties配置日志,控制台能打印sql语句我想在日志文件打印出来,做了半天搞不定求大神帮忙

#将ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运行的sql语句

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=D:/test.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

或者

1.首先将ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运行的sql语句
2.添加如下语句
###显示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

上面那个是我百度的,我看了一下之前自己做的项目。我吧log文件给你看一下log4j.rootLogger=DEBUG, R, O

#Stdout
log4j.appender.O=org.apache.log4j.ConsoleAppender

File

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log4j.log

Control the maximum log file size

log4j.appender.R.MaxFileSize=100KB

Archive log files (one backup file here)

log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.O.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n

然后在Controller.java文件中定一个一个log对象
private static final Log logeer=LogFactory.getLog(lxx.Class);
然后再调用log的debug语句就行了
图片说明

现在的spring-mybatis.xml配置如下:




<!-- 自动扫描mapping.xml文件 -->


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">


<!-- 打印查询语句 -->

<!-- mapper已经在spring-mybatis.xml中的sqlSessionFactory配置,这里不再需要配置 -->


复制代码

不错,打印SQL只需要加一个setting就可以了。

mybatis的日志打印方式比较多,SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING,可以根据自己的需要进行配置