[java] Log4j2配置 - 找不到log4j2配置文件



2 Answers

您需要選擇以下解決方案之一:

  1. 將log4j2.xml文件放在項目的資源目錄中,以便log4j在類路徑下找到文件。
  2. 使用系統屬性-Dlog4j.configurationFile = file:/path/to/file/log4j2.xml
Question

最近我決定學習如何使用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沒有<Logger>標籤,包規範和各種文件夾/包目錄,但它沒有幫助。 現在我的log4j2.xml文件直接位於eclipse中的項目文件夾中。




在強制刷新IDE之前,Eclipse永遠不會看到文件。 它的一個功能! 因此,您可以將文件放在整個項目中,Eclipse將完全忽略它並拋出這些錯誤。 在Eclipse項目視圖中點擊刷新然後它可以工作。




在我的情況下,我不得不把它放在我的項目的bin文件夾中,即使我的類路徑設置為src文件夾。 我不知道為什麼,但值得一試。




Related