Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6541350
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: Java

2011-07-07 09:05:06

一、项目介绍

 

log4jdbc项目地址:

 

可以将原先的参数占位符“?”,替换为实际参数值,方便调试

如:select username,password from bitth_date > ? and age < ?

替换为:select username,password from bitth_date > to_date(‘2010-11-11’,’yyyy-mm-dd’) and age < 20

另外可以输出调用时间等。

 

二、log4jdbc使用

1. 选择log4jdbc版本,按照网站描述

log4jdbc3-1.2beta2.jar    for JDBC 3 support in JDK 1.4 , JDK 1.5
log4jdbc4-1.2beta2.jar    for JDBC 4 support in JDK 1.6 , JDK 1.7

 

2. 需要使用SLF4j

 

3. 设置jdbc driver。

如:在jdbc.properties中将原先的

jdbc.driver=oracle.jdbc.driver.OracleDriver

修改为

jdbc.driver=net.sf.log4jdbc.DriverSpy

 

4. 修改jdbc url。

如:在jdbc.properties中将原先的

jdbc.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=test)))

 

修改为

jdbc.url=jdbc:log4jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=test)))

 

5. 设置logger

如在控制台仅需要输出sql语句的log4j.properties

log4j.logger.jdbc.sqlonly=DEBUG,sql log4j.additivity.jdbc.sqlonly=true log4j.appender.sql=org.apache.log4j.ConsoleAppender log4j.appender.sqlThreshold=debug log4j.appender.sqlTarget=System.out log4j.appender.sqlEncoding=GBK log4j.appender.sql.layout=org.apache.log4j.PatternLayout log4j.appender.sql.layout.ConversionPattern=-----> %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n

 

目前版本为1.2beta2。

 

log4jdbc文档中的log4j.properties示例

  1. !==============================================================================  
  2. ! log4j.properties - An example configuration properties file for log4j.  
  3. !  
  4. ! Logging levels are:  
  5. ! DEBUG < INFO < WARN < ERROR < FATAL  
  6. !==============================================================================  
  7.   
  8. ! turn on the internal log4j debugging flag so we can see what it is doing  
  9. log4j.debug=true  
  10.   
  11. !==============================================================================  
  12. ! JDBC API layer call logging :  
  13. ! INFO shows logging, DEBUG also shows where in code the jdbc calls were made,  
  14. ! setting DEBUG to true might cause minor slow-down in some environments.  
  15. ! If you experience too much slowness, use INFO instead.  
  16.   
  17. ! Log all JDBC calls except for ResultSet calls  
  18. log4j.logger.jdbc.audit=INFO,jdbc  
  19. log4j.additivity.jdbc.audit=false  
  20.   
  21. ! Log only JDBC calls to ResultSet objects  
  22. log4j.logger.jdbc.resultset=INFO,jdbc  
  23. log4j.additivity.jdbc.resultset=false  
  24.   
  25. ! Log only the SQL that is executed.  
  26. log4j.logger.jdbc.sqlonly=DEBUG,sql  
  27. log4j.additivity.jdbc.sqlonly=false  
  28.   
  29. ! Log timing information about the SQL that is executed.  
  30. log4j.logger.jdbc.sqltiming=DEBUG,sqltiming  
  31. log4j.additivity.jdbc.sqltiming=false  
  32.   
  33. ! Log connection open/close events and connection number dump  
  34. log4j.logger.jdbc.connection=FATAL,connection  
  35. log4j.additivity.jdbc.connection=false  
  36.   
  37.   
  38. ! the appender used for the JDBC API layer call logging above, sql only  
  39. log4j.appender.sql=org.apache.log4j.FileAppender  
  40. log4j.appender.sql.File=./logs/sql.log  
  41. log4j.appender.sql.Append=false  
  42. log4j.appender.sql.layout=org.apache.log4j.PatternLayout  
  43. log4j.appender.sql.layout.ConversionPattern=-----> %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n  
  44.   
  45. ! the appender used for the JDBC API layer call logging above, sql timing  
  46. log4j.appender.sqltiming=org.apache.log4j.FileAppender  
  47. log4j.appender.sqltiming.File=./logs/sqltiming.log  
  48. log4j.appender.sqltiming.Append=false  
  49. log4j.appender.sqltiming.layout=org.apache.log4j.PatternLayout  
  50. log4j.appender.sqltiming.layout.ConversionPattern=-----> %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n  
  51.   
  52. ! the appender used for the JDBC API layer call logging above  
  53. log4j.appender.jdbc=org.apache.log4j.FileAppender  
  54. log4j.appender.jdbc.File=./logs/jdbc.log  
  55. log4j.appender.jdbc.Append=false  
  56. log4j.appender.jdbc.layout=org.apache.log4j.PatternLayout  
  57. log4j.appender.jdbc.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n  
  58.   
  59. ! the appender used for the JDBC Connection open and close events  
  60. log4j.appender.connection=org.apache.log4j.FileAppender  
  61. log4j.appender.connection.File=./logs/connection.log  
  62. log4j.appender.connection.Append=false  
  63. log4j.appender.connection.layout=org.apache.log4j.PatternLayout  
  64. log4j.appender.connection.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n  
阅读(3987) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~