gpt4 book ai didi

java - log4jdbc PreparedStatement.toString()

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:22 26 4
gpt4 key购买 nike

我试图在使用 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 执行的,并委托(delegate)给您的应用程序使用的实际记录器实现。

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

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

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

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

关于java - log4jdbc PreparedStatement.toString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6315057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com