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  
目录
相关文章
|
前端开发 Java 关系型数据库
记录:Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl...解决方案【亲测有效】
记录:Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl...解决方案【亲测有效】
5350 0
|
6月前
|
Java 数据库
SpringBoot出现com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime va
SpringBoot出现com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime va
264 0
|
关系型数据库 MySQL Java
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException 异常解决
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException 异常解决
|
6月前
|
Java 数据库 Maven
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to
62 0
|
存储 设计模式 缓存
详解MySQL Error Log
Error Log是MySQL的一个非常重要的日志,主要用来记录mysqld的启动和关闭,以及mysqld启动,关闭以及运行期间的诊断信息。本文主要对Error Log的初始化以及写入过程做一个详细的介绍。以下介绍基于MySQL 8.0.28。初始化日志服务的初始化代码调用堆栈如下:- mysqld_main   - init_error_log   //初始化日志子系统   - log_buil
详解MySQL Error Log
|
关系型数据库 MySQL Java
9. 成功解决:Driver class 'org.gjt.mm.mysql.Driver' could not be found
在使用 Kettle(Spoon) 工具创建 MySQL 数据库连接时,提示:Driver class 'org.gjt.mm.mysql.Driver' could not be found, make sure the 'MySQL' driver (jar file) is installed. org.gjt.mm.mysql.Driver
2153 0
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
78 0
|
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
150 0
|
SQL 关系型数据库 MySQL
一次org.springframework.jdbc.BadSqlGrammarException ### Error querying database Cause: com.mysql.jdbc....
一次org.springframework.jdbc.BadSqlGrammarException ### Error querying database Cause: com.mysql.jdbc....
606 0
|
关系型数据库 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.异常错误问题及解决方法。