Log4j2 配置 - 未找到 log4j2 配置文件

2022-08-31 10:41:24

最近我决定学习如何使用log4j2记录器。我下载了所需的jar文件,创建了库,xml组合文件并尝试使用它。不幸的是,我在控制台(Eclipse)中得到了这个声明:

ERROR StatusLogger No log4j2 configuration file found. Using default configuration:       logging only errors to the console.

这是我的测试类代码:

package log4j.test;

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

public class Log4jTest
{
    static final Logger logger = LogManager.getLogger(Logger.class.getName());

    public static void main(String[] args) {    
        logger.trace("trace");
        logger.debug("debug");
        logger.info("info");
        logger.warn("warn");
        logger.error("error");
        logger.fatal("fatal");
    }
}

以及我的 xml 配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration package="log4j.test" 
               status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="log4j.test.Log4jTest" level="trace">
            <AppenderRef ref="Console"/>
        </Logger>
        <Root level="trace">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

我也尝试过使用没有标签的xml,包规范和各种文件夹/包目录,但它没有帮助。现在我的文件直接位于 eclipse 中的项目文件夹中。<Logger>log4j2.xml


答案 1

这是一个简单的日食java项目,没有maven等吗?在这种情况下,您需要将文件放在文件夹下,以便能够在类路径上找到它。如果你使用maven把它放在或log4j2.xmlsrcsrc/main/resourcessrc/test/resources


答案 2

您需要选择以下解决方案之一:

  1. 将 log4j2.xml 文件放在项目的资源目录中,以便 log4j 在类路径下找到文件。
  2. 使用系统属性 -Dlog4j.configurationFile=file:/path/to/file/log4j2.xml

推荐