log4jdbc使用 .

简介: 一、项目介绍   log4jdbc项目地址:http://code.google.com/p/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 另外可以输出调用时间等。

一、项目介绍

 

log4jdbc项目地址:http://code.google.com/p/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

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

 

二、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  
目录
相关文章
|
4月前
|
Java 数据库 Maven
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to
31 0
|
10月前
|
存储 设计模式 缓存
详解MySQL Error Log
Error Log是MySQL的一个非常重要的日志,主要用来记录mysqld的启动和关闭,以及mysqld启动,关闭以及运行期间的诊断信息。本文主要对Error Log的初始化以及写入过程做一个详细的介绍。以下介绍基于MySQL 8.0.28。初始化日志服务的初始化代码调用堆栈如下:- mysqld_main   - init_error_log   //初始化日志子系统   - log_buil
详解MySQL Error Log
|
10月前
Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: In aggregated query without GROUP
Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: In aggregated query without GROUP BY, expression #3 of SELECT list contains nonaggregated column
54 0
|
11月前
|
Java 关系型数据库 MySQL
Loading class `com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is `com.mysql.cj.jdb
Loading class `com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is `com.mysql.cj.jdb
122 0
|
关系型数据库 MySQL 数据库
快速解决:Loading class `com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is `com.mysql.c
我们当前使用的数据库版本在6.0以上,原来的驱动(com.mysql.jdbc.Driver)已经被废弃了,要进行更换驱动就好了
29699 1
快速解决:Loading class `com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is `com.mysql.c
|
关系型数据库 MySQL
Loading class `com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is `com.mysql.cj.jdb
Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.异常错误问题及解决方法。
|
Java 数据库连接 数据库管理
Rolling back JDBC Connection [org.sqlite.jdbc4.JDBC4Connection
Rolling back JDBC Connection [org.sqlite.jdbc4.JDBC4Connection
|
SQL 关系型数据库 MySQL
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
在写数据库动态查询的时候出现错误。
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
|
Java 关系型数据库 MySQL
【JDBC】The new driver class is `com.mysql.cj.jdbc.Driver‘. The driver is automatically
【JDBC】The new driver class is `com.mysql.cj.jdbc.Driver‘. The driver is automatically
【JDBC】The new driver class is `com.mysql.cj.jdbc.Driver‘. The driver is automatically
|
关系型数据库 数据库 PostgreSQL
DriverManager.registerDriver(new Driver());与Class.forName(“com.mysql.jdbc.Driver”);的区别
DriverManager.registerDriver(new Driver());与Class.forName(“com.mysql.jdbc.Driver”);的区别
241 0

热门文章

最新文章