【问题标题】:How to enable debug logging in PostgreSQL JDBC/HikariCP?如何在 PostgreSQL JDBC/HikariCP 中启用调试日志记录?
【发布时间】:2016-12-06 16:02:25
【问题描述】:

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

但是,日志和以前一样。

【问题讨论】:

    标签: java postgresql logging jdbc hikaricp


    【解决方案1】:

    需要考虑的几件事:

    考虑记录到文件

    1) 登录到 sysout 可能会导致您错过更新 2)它也很慢并且会减慢您的应用程序速度

    考虑将日志配置保留在 slf4j 配置文件中。

    考虑特定的 Hikari 配置:

    -Dorg.slf4j.simpleLogger.log.com.zaxxer.hikari=error
    

    另外,默认情况下 slf4j 简单记录器的日志级别是信息。所以,如果你没有看到任何东西,我认为它不是配置。它可能缺乏一些依赖(你只是在使用 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 会告诉你更多。

    【讨论】:

      猜你喜欢
      • 2018-07-15
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多