使用jdbclogger將所有sql完整的打印出來

使用mybatis/hibernate/jdbctemplate或原生jdbc操作時,打印出來的SQL語句都是SQL和值分開的,導致有時侯調試很麻煩


使用jdbclogger可以很好的解決此問題,它可以讓我們執行SQL的完整語句都打印出來

對於未使用maven的項目可以從它的官網下載JAR文件

jdbclogger官網下載地址:

http://jdbclogger.sourceforge.net/download.html


使用MAVEN的倉庫則需要:

1)添加依賴的倉庫地址

<repository>
    <id>jdbclogger</id>
    <name>JDBC Logger private repo</name>
    <url>http://jdbclogger.sourceforge.net/m2-repo/</url>
    <releases>
        <enabled>true</enabled>
    </releases>
    <snapshots>
        <enabled>false</enabled>
    </snapshots>
</repository>

在依賴中引入:

<dependency>
    <groupId>net.sourceforge.jdbclogger</groupId>
    <artifactId>jdbclogger</artifactId>
    <version>0.6</version>
</dependency>

依賴引入後只需要三個步驟即可實現log4j將sql語句完整的打印出來:

1)在log4j中配置jdbclogger打印對應的日誌級別

log4j.rootLogger=DEBUG, STDOUT, FILE
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
log4j.appender.STDOUT.Target=System.out

#用於將完整的SQL語句打到控制檯中
log4j.logger.net.sourceforge.jdbclogger=DEBUG


2)增加資源文件jdbclogger.properties

jdbclogger.driver=org.postgresql.Driver 
注意不同的數據庫驅動路徑要寫正確


3)修改jdbc使用的驅動路徑指向jdbclogger類:

net.sourceforge.jdbclogger.JdbcLoggerDriver

public class ConnFactory {
	private static Log log = LogFactory.getLog(ConnFactory.class);
	private static Connection srcConn = null;
	private static Connection descConn = null;

	static {
		try {
			Class.forName("net.sourceforge.jdbclogger.JdbcLoggerDriver").newInstance();
		} catch (Exception e) {
			log.error("[datatransfer] cant not install driver.", e);
			System.exit(1);
		}
	}
	.....


以上是使用原生jdbc時實現的SQL打印的示例。

和spring的集成也很簡單,具體可以看一下官網文檔:

http://jdbclogger.sourceforge.net/spring-integration.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章