如何设置HikariCP的日志记录级别?

Don*_*mmy 2 java log4j jdbc slf4j hikaricp

目前,HikariCP正在登录级别INFO,我想将其设置为SEVERE.当我尝试在父记录器上设置级别(我可以找到的唯一对日志记录的引用)时,它会抛出错误:

dataSource.getParentLogger().setLevel( Level.SEVERE );
Run Code Online (Sandbox Code Playgroud)

错误:

Caused by: java.sql.SQLFeatureNotSupportedException
    at com.zaxxer.hikari.HikariDataSource.getParentLogger(HikariDataSource.java:176)
Run Code Online (Sandbox Code Playgroud)

如何正确设置日志记录级别?

小智 6

HikariCP在引擎盖下使用slf4j.您必须在实际的记录器实现上设置日志级别(logback,log4j,JUL,...).

此外,slf4j提供了一个非常简单的记录器实现slf4j-simple.只需将依赖项添加到您的pom即可

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.5</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用系统属性对其进行配置,例如

java -Dorg.slf4j.simpleLogger.log.com.zaxxer.hikari=error ...
Run Code Online (Sandbox Code Playgroud)


小智 5

以编程方式设置日志级别的另一种方法

import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Level;

ch.qos.logback.classic.Logger hikariLogger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger("com.zaxxer.hikari");
hikariLogger.setLevel(Level.ERROR);
Run Code Online (Sandbox Code Playgroud)