错误StatusLogger Log4j2找不到日志记录实现

时间:2017-12-19 07:21:01

标签: java eclipse log4j2

我正在尝试实施 log4j 2 ,但它不断抛出以下错误。

> ERROR StatusLogger Log4j2 could not find a logging implementation.
> Please add log4j-core to the classpath. Using SimpleLogger to log to
> the console...  
> ERROR LogExample This Will Be Printed On Error 
> FATAL LogExample This Will Be Printed On Fatal

我已经尝试过网上给出的解决方案。但是,似乎并没有为我工作。

这是我想要运行的代码

package demo;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class LogExample {

    private static final Logger LOG = LogManager.getLogger(LogExample.class);

    public static void main(String[] args) {

        LOG.debug("This Will Be Printed On Debug");
        LOG.info("This Will Be Printed On Info");
        LOG.warn("This Will Be Printed On Warn");
        LOG.error("This Will Be Printed On Error");
        LOG.fatal("This Will Be Printed On Fatal");
        LOG.info("Appending string: {}.", "Hello, World");
    }

}

在pom.xml中添加了项目和依赖项:

enter image description here

enter image description here

感谢任何帮助。感谢。

5 个答案:

答案 0 :(得分:3)

通过设置log4j2配置文件的系统属性解决了错误消息。以下是以下代码。

System.setProperty("log4j.configurationFile","./path_to_the_log4j2_config_file/log4j2.xml");

Logger log = LogManager.getLogger(LogExample.class.getName());

答案 1 :(得分:2)

此依赖性有助于避免lambda出现此错误。

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-to-slf4j</artifactId>
    <version>2.8.2</version>
</dependency>

答案 2 :(得分:1)

如果您已经将 log4j-core 添加到 maven pom,那么您不需要更多它应该可以工作的东西。问题可能出在您的 IDE 上,它没有看到您的 Maven 依赖项。尝试重新加载或重新导入 maven 依赖项,或者重新启动 IDE 也有帮助。

答案 3 :(得分:0)

要解决与Spring Boot类似的问题,我添加了

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>   

到我的POM

答案 4 :(得分:0)

就我而言,该错误与Maven-shade-plugin的版本(3.2.2)有关。

当我将此插件设置为3.2.1版时,它可以工作