找不到记录器的附加程序 (com.zaxxer.hikari.HikariConfig)

No appenders could be found for logger (com.zaxxer.hikari.HikariConfig)

所以到目前为止,我整个周末都在尝试为 HikariCP 配置记录器,现在我正在寻求帮助。 我不能准确地列出我已经尝试过的东西,因为我经历了所有我能找到的东西,但这里有两个我迄今为止发现的最有前途的东西。

首先是这个 Whosebug 线程: No appenders could be found for logger(log4j)? 哪个被标记为正确但是当我添加

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.11.0</version>
</dependency>

我的 pom.xlm 我仍然收到相同的错误消息。

我发现的第二件事就是使用

BasicConfigurator.configure();

虽然这确实有效,但它还可以为我在我的真实项目中拥有的其他库启用日志记录,这些垃圾邮件发送的日志消息比我可以处理的多,所以这不是一个选项。 这行代码是在 No appenders could be found for logger(log4j)? 上找到的,它还声明使用此配置将有效

# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

然而,在将这篇文章翻译成 XLM 配置后,我仍然收到完全相同的错误消息。

log4j:WARN No appenders could be found for logger (com.zaxxer.hikari.HikariConfig).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

这是我现在的 log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%logger{1}] - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="com.zaxxer.hikari.HikariConfig" level="debug" additivity="true">
            <AppenderRef ref="Console"/>
        </Logger>
        <Root level="trace">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

这是我现在的 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.dinhware</groupId>
    <artifactId>WhosebugTest</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>2.2.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
        </dependency>
    </dependencies>
</project>

那我到底做错了什么,我是不是漏掉了一些非常明显的东西?

似乎有些地方没有正确更新。 在我重新创建我的 pom.xml 文件之后 我再次删除了依赖

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.25</version>
</dependency>

并将其替换为我原来 post

中的第一个
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.11.0</version>
</dependency>

现在看来确实有效。