如何在PostgreSQL JDBC / HikariCP中启用调试日志记录?

时间:2016-08-01 14:14:35

标签: java postgresql logging jdbc hikaricp

我有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.

如何启用调试日志记录以查看正在进行的操作?

我试过了:

-Adding:

org.postgresql.Driver.setLogLevel(Driver.DEBUG);
hikariDataSource = new HikariDataSource();
hikariDataSource.setLogWriter(new PrintWriter(System.out));

- 添加到VM选项:

-Dorg.slf4j.simpleLogger.defaultLogLevel=debug

但是,日志与它们相同。

1 个答案:

答案 0 :(得分:1)

很少有事情需要考虑:

考虑记录到文件

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会告诉你更多信息。