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

时间:2018-07-15 09:16:05

标签: java logging log4j slf4j hikaricp

因此,到目前为止,我整个周末都一直在尝试为HikariCP配置记录器,现在我正在寻求帮助。 我无法准确列出我已经尝试过的内容,因为我经历了所有可以找到的事情,但这是到目前为止我发现的两个最有希望的事情。

第一件事就是这个Stackoverflow线程: 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>StackOverFlowTest</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>

那么我在这里做错了什么,我只是错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:0)

似乎某些内容未正确更新。 重新创建我的pom.xml文件之后 我再次删除了依赖项

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

并用我原始帖子中的第一个替换它

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

现在看来确实有效。