记录HikariCP Spring Boot日志

33
我在我的application.yml文件中设置了我的属性。

我在我的application.yml文件中设置了我的属性。

spring.datasource.hikari.connection-timeout: 30000
spring.datasource.hikari.maximum-pool-size: 10
spring.datasource.hikari.idle-timeout: 600000
spring.datasource.hikari.minimum-idle: 10

Spring的版本是2.1.9.RELEASE。

我该如何记录这些参数以检查应用程序是否正确采用了配置?

谢谢。


请参见 https://dev59.com/c2Af5IYBdhLWcg3woj3N。 - user7294900
我需要查看Hikari类中的值,而不是Spring Boot环境中的值。 - resla95
logging.level.com.zaxxer.hikari.HikariConfig=DEBUG logging.level.com.zaxxer.hikari=TRACE - resla95
2
我注意到在Spring Boot 2.7.0中,你需要删除属性名称中的hikari.部分,可能是因为Hikari是默认的DataSource实现。如果你想验证你的属性是否正确注册,还需要添加以下两行代码: logging.level.com.zaxxer.hikari.HikariConfig=DEBUG logging.level.com.zaxxer.hikari=TRACE - Pierre C
如@PierreC所提到的,使用Spring Boot 2.7.0时,需要移除Hikari,因为它将无法工作。而是应该使用属性spring.datasource.minimumIdlespring.datasource.maximum-pool-size。 有趣的是,在存在Hikari时,IntelliJ不会对这些属性显示警告,但在没有Hikari的情况下,会显示“无法解析配置属性”的错误。 - 98percentmonkey
1个回答

65
如果你使用springboot并想要记录HikariCP参数以检查应用程序是否正确地采用了配置,请将以下内容放入你的application.yaml或application.properties文件中:
logging.level.com.zaxxer.hikari.HikariConfig=DEBUG 
logging.level.com.zaxxer.hikari=TRACE

控制台将显示所有内容


3
每30秒会打印一次池状态。我们有没有可以指定此时间的参数? - Kavya Jain
2
@KavyaJain 当你查看 com.zaxxer.hikari.pool.HikariPool 类时,你会发现有一个管家任务每30秒运行一次并进行日志记录。这似乎没有文档说明,而且它会影响不仅仅是日志记录,但你可以通过系统属性 com.zaxxer.hikari.housekeeping.periodMs 来更改它的运行频率,例如 -Dcom.zaxxer.hikari.housekeeping.periodMs=10000 每10秒运行一次。 - Dario Seidl
记录的信息可能会出现错误,原因是由于这个Spring框架的bug:https://github.com/spring-projects/spring-framework/issues/29607 - wdk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接