Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java log4jdbc PreparedStatement.toString()_Java_Jdbc_Logging - Fatal编程技术网

Java log4jdbc PreparedStatement.toString()

Java log4jdbc PreparedStatement.toString(),java,jdbc,logging,Java,Jdbc,Logging,我试图在使用log4jdbc框架包含变量之后获取SQL语句。到目前为止,它捕获并打印出所需的信息,但也有一些我不需要的东西: 11.06.2011 10:49:40 net.sf.log4jdbc.Slf4jSpyLogDelegator connectionOpened INFO: 1. Connection opened 11.06.2011 10:49:40 net.sf.log4jdbc.Slf4jSpyLogDelegator methodReturned INFO: 1. Conne

我试图在使用log4jdbc框架包含变量之后获取SQL语句。到目前为止,它捕获并打印出所需的信息,但也有一些我不需要的东西:

11.06.2011 10:49:40 net.sf.log4jdbc.Slf4jSpyLogDelegator connectionOpened
INFO: 1. Connection opened
11.06.2011 10:49:40 net.sf.log4jdbc.Slf4jSpyLogDelegator methodReturned
INFO: 1. Connection.new Connection returned 
11.06.2011 10:49:40 net.sf.log4jdbc.Slf4jSpyLogDelegator methodReturned
INFO: 1. PreparedStatement.new PreparedStatement returned 
11.06.2011 10:49:40 net.sf.log4jdbc.Slf4jSpyLogDelegator methodReturned
INFO: 1. Connection.prepareStatement(INSERT INTO `xxx` (`y`, `y`, `y`, `y`, `y`, `y`) VALUES (NOW(), ?, ?, ?, ?, ?, ?) ) returned net.sf.log4jdbc.PreparedStatementSpy@13043d2
11.06.2011 10:49:40 net.sf.log4jdbc.Slf4jSpyLogDelegator methodReturned
INFO: 1. PreparedStatement.setInt(1, 0) returned 
11.06.2011 10:49:40 net.sf.log4jdbc.Slf4jSpyLogDelegator methodReturned
INFO: 1. PreparedStatement.setInt(2, 2) returned 
11.06.2011 10:49:40 net.sf.log4jdbc.Slf4jSpyLogDelegator methodReturned
INFO: 1. PreparedStatement.setLong(3, 1426656) returned 
11.06.2011 10:49:40 net.sf.log4jdbc.Slf4jSpyLogDelegator methodReturned
INFO: 1. PreparedStatement.setLong(4, 5177344) returned 
11.06.2011 10:49:40 net.sf.log4jdbc.Slf4jSpyLogDelegator methodReturned
INFO: 1. PreparedStatement.setInt(5, 12) returned 
11.06.2011 10:49:40 net.sf.log4jdbc.Slf4jSpyLogDelegator methodReturned
INFO: 1. PreparedStatement.setInt(6, 1) returned
2011-06-11 10:49:40,993;net.sf.log4jdbc.PreparedStatementSpy@13043d2;
11.06.2011 10:49:40 net.sf.log4jdbc.Slf4jSpyLogDelegator sqlOccured
INFO: INSERT INTO `xxx` (`y`, y`, `y`, `y`, `y`, `y`, `y`) VALUES (NOW(), 0, 2, 1426656, 5177344, 12, 1) 

如何筛选条目并仅显示实际的最后一个条目?

浏览了log4jdbc的源代码后,我可以推断所有日志记录都是由slf4j执行的,并委托给应用程序正在使用的实际记录器实现

我不确定在您的环境中实际使用了什么记录器。这取决于你的应用服务器(我是从你的评论中推断出来的)。通常,应用服务器将使用log4j或java.util.logging

您需要配置这两个记录器中的任何一个,以确保仅启用
jdbc.sqlonly
记录器;必须禁用页面上提到的其他记录器,或将其日志记录级别设置为高值。如果正在使用log4j,则以下代码段(来自log4jdbc站点上发布的)是记录器配置中最相关的部分:

! Log only the SQL that is executed.
log4j.logger.jdbc.sqlonly=DEBUG,sql
log4j.additivity.jdbc.sqlonly=false

如果正在使用
java.util.logging
,则必须执行类似的配置更改。

是否也可以发布log4j.properties文件的内容?我如示例所示包装了log4jdbc框架,并且没有在allOk中添加任何配置,这听起来很有趣,但我不知道在何处插入此设置。我使用logger=org.apache.log4j.logger.getLogger(“logger”);然后是logger.log(preparedStatement.toString());那么我在哪里可以更改日志设置呢?呃,为什么要编写代码来创建一个新的记录器并记录语句?如果您依赖log4jdbc来包装连接对象,我想(至少在查看项目源代码时,我的印象是这样的),它也会记录所有的内容。关于更改设置的主题,您需要知道应用程序服务器使用的log4.properties的位置。编辑该文件以包含新的设置应该很简单;可能需要重新启动。@Vilius,log4jdbc使用的所有5个记录器都由库中的SpyLogDelegator类管理;您不需要创建任何其他记录器来执行日志记录。通过log4j.properties文件仅启用jdbc.sqlonly记录器将确保只记录SQL语句。“为什么要编写代码来创建新记录器并记录语句?”-我使用自己的记录器,因为我想将一些语句记录到文件系统中的文件中。但是你是对的,为什么我要创建一个新的记录器,我也许能够更改log4jdbc,它也将条目记录到一个文件中。我会试试看。。。