我有 Spring Boot 1.4.0、HikariCP 2.4.7、slf4j-api 1.7.21 和 PostgreSQL JDBC 9.4.1208。
我想查看来自 PostgreSQL JDBC 的调试日志,因为我有 some problems与 HikariCP 一起:
HikariPool-1 - Connection is not available, request timed out after 42734ms.
如何启用调试日志记录以查看发生了什么?
我已经尝试过:
-添加:
org.postgresql.Driver.setLogLevel(Driver.DEBUG);
hikariDataSource = new HikariDataSource();
hikariDataSource.setLogWriter(new PrintWriter(System.out));
-添加到虚拟机选项:
-Dorg.slf4j.simpleLogger.defaultLogLevel=debug
但是,日志与以前相同。
最佳答案
需要考虑的一些事情:
考虑记录到文件
1) 记录到 sysout 可能会导致您错过更新 2)它也很慢并且会减慢你的应用程序的速度
考虑将日志配置保留在 slf4j 配置文件中。
考虑特定的 Hikari 配置:
-Dorg.slf4j.simpleLogger.log.com.zaxxer.hikari=error
此外,默认情况下 slf4j 简单记录器的日志级别是 info。所以,如果你没有看到任何东西,我认为这不是配置。它可能缺乏一些依赖性(您只是使用 slf4j,还是其他东西,例如 log4j?)。
最后,您确定您的更改已被采纳吗?
由于这一方面很难说,所以让我提供可以进行日志记录的另一方面:Postgres。
尝试更改 PG 日志配置:
logging_collector = on # may be 'true' for older versions as well?
log_statement = all # 'true' for older versions
log_min_error_statement = error
首先打开日志收集器并使日志记录不会丢失消息。 其次说一切都让你感兴趣,甚至是带有语法错误的简单查询。 第三个给出了您的错误级别。
Docs for Postgres会告诉你更多。
关于java - 如何在 PostgreSQL JDBC/HikariCP 中启用调试日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38701125/