log4j列印sql語句
⑴ 怎樣用Log4j得到當前執行的sql語句
mybatis默認使用log4j,當有self4j這個日誌jar包存在時會無法列印sql,請移除或者在工程啟動時顯示設置mybatis使用的日誌類:
log4j.logger.org.apache.ibatis=debug,stdout log4j.logger.java.sql=debug,stdout
這樣有時可能卻不是個可行的辦法,原因在於不可能移除self4j包,因為其他依賴包必須依賴這個包。 mybatis有如下方法來手動選擇日誌類,調用後成功列印日誌 如果引用了slf4j的包,並且要使用log4j需要加入slf4j-log4j12的包,如果沒有加入slf4j-log4j12的包是無法列印sql的。。具體log4j文件如下:
log4j.rootCategory=info, stdout , R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.Conversion
Pattern=[QC] %p [%t] %C.%M(%L) | %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=D:\\report.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n
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,stdout
現在重啟tomcat,執行一條語句看看,sql是不是都出來了
⑵ log4j控制台輸出sql語句結果log4j控制台什麼都不輸出
這個是我現在項目裡面用的 你試看:
log4j.rootLogger=DEBUG,Console,File
#log4j.rootLogger=INFO,Console,File
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
#log4j.appender.Console.layout.ConversionPattern=[%c]%m%n
log4j.appender.File.layout.ConversionPattern=%d %t %p [%c{1}] %L %m%n"
log4j.appender.File=org.apache.log4j.RollingFileAppender
log4j.appender.File.File=mybatis.log
log4j.appender.File.MaxFileSize=10MB
log4j.appender.File.Threshold=ALL
log4j.appender.File.layout=org.apache.log4j.PatternLayout
#log4j.appender.File.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n
log4j.appender.File.layout.ConversionPattern=%d %t %p [%c{1}] %L %m%n"
用的是maven管理jar包
maven配置:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
⑶ 列印sql語句怎麼列印
您好,我來為您解答:
#將ibatis log4j運行級別調到DEBUG可以在控制台列印出ibatis運行的sql語句
log4j.rootLogger=debug,stdout,logfile
希望我的回答對你有幫助。
⑷ mybatis使用log4j列印sql為什麼沒有輸出結果集
只要配置mapper介面類或者配置文件中mapper的路徑為debug就可以了. 具體可參考這里. 裡面還說明了, 如果要列印sql語句的執行結果, 需要設置為trace級別.
⑸ log4j.xml 如何在控制台列印jdbc執行過的sql
問題要描述清楚,使用什麼框架,是hibernate,還是mybatis,或者自己寫的資料庫連接工具。如果是hibernate,需要在hibernate屬性文件中配置hibernate.show_sql=true,或者在hibernate.cfg.xml文件中配置。
如果是mybatis,配置log4j
<category name="org.apache.ibatis" additivity="false">
<priority value="DEBUG"/>
<appender-ref ref="console"/>
</category>
⑹ Mybatis使用log4j列印sql,沒有輸出resultSet
ybatis默認使用log4j,當有self4j這個日誌jar包存在時會無法列印sql
#需要debug
log4j.rootCategory=info,stdout,file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# log4j.appender.stdout.layout.ConversionPattern= %-d{yyyy-MM-dd HH:mm:ss.SSS}, [%-9t], [%-5p], %C{1}.%M(%L), | %m%n
log4j.appender.stdout.layout.ConversionPattern= %-d{yyyy-MM-dd HH:mm:ss.SSS}, [%-9t], [%-5p], %C{1}.(%-3L), | %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.file=${webapp.root}/logs/My.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern= %-d{yyyy-MM-dd HH:mm:ss.SSS}, [%-9t], [%-5p], %C{1}.%M(%L), | %m%n
# OpenSymphony Stuff
log4j.logger.freemarker=info
log4j.logger.com.opensymphony=info
log4j.logger.com.opensymphony.xwork2.ognl=info
log4j.logger.org.apache.struts2=info
# Spring Stuff
log4j.logger.org.springframework=info
#mybatis Console
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
########## new 20141225
# OpenSymphony Stuff
log4j.logger.freemarker=WARN
log4j.logger.com.opensymphony=WARN
log4j.logger.com.opensymphony.xwork2.ognl=WARN
log4j.logger.org.apache.struts2=WARN
# Spring Stuff
log4j.logger.org.springframework=WARN
#mybatis Console
###顯示SQL語句部分
log4j.logger.org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl=DEBUG
log4j.logger.java.sql=DEBUG,stdout
⑺ 怎麼樣配置log4j 才能將hibernate在控制台輸出sql語句
因為hibernate在輸出sql時使用的logger名為org.hibernate.SQL,所以想讓SQL語句輸出到log4j,只要在log4j.properties或log4j.xml的配置中加上如下語句:
log4j.logger.org.hibernate.SQL=DEBUG
記得同時把hibernate中配置文件hibernate.show_sql設置為false,避免同時在控制台和log日誌中雙份輸出sql語句。
⑻ 怎樣使log4j列印SQL語句的時候不列印activity工作流SQL語句
1、log4j配置[html]viewplainlog4j.logger.com.ibatis=DEBUGlog4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUGlog4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUGlog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUGlog4j.logger.org.mybatis=DEBUGlog4j.logger.java.sql.Connection=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUGlog4j.logger.java.sql.ResultSet=DEBUG2、導入jar[html]viewplainlog4jlog4j1.2.14org.slf4jslf4j-api1.7.7org.slf4jslf4j-log4j121.7.73、沒了,注意一定要導入slf4j的包,否則sql語句列印不出來