Java Log4J 2未写入文件

Java Log4J 2未写入文件,java,logging,log4j2,Java,Logging,Log4j2,我正在尝试使用log4j2实现一些日志记录。控制台输出正常,但当我尝试将一些日志写入文件时,我无法管理它 Mypom.xml: <dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId>

我正在尝试使用log4j2实现一些日志记录。控制台输出正常,但当我尝试将一些日志写入文件时,我无法管理它

My
pom.xml

<dependencies>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.8</version>
        </dependency>
    </dependencies>
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="60">
    <Properties>
        <Property name="log-path">logs</Property>
        <Property name="archive">${log-path}/archive</Property>
    </Properties>
    <Appenders>
        <Console name="Console-Appender" target="SYSTEM_OUT">
            <PatternLayout>
                <pattern>
                    [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
                </pattern>>
            </PatternLayout>
        </Console>
        <File name="File" fileName="${log-path}/xmlfilelog.log" immediateFlush="true" >
            <PatternLayout>
                <pattern>
                    [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
                </pattern>
            </PatternLayout>
        </File>
    </Appenders>
    <Loggers>
        <Logger name="les.dam" level="trace">
            <AppenderRef ref="File" level="trace"/>
        </Logger>
        <Root level="trace">
            <AppenderRef ref="Console-Appender"/>
        </Root>
    </Loggers>
</Configuration>
我使用log4j的方式如下:

private static Logger logger = LogManager.getLogger();
logger.debug("This is a debug message");
logger.info("This is an info message");
logger.warn("This is a warn message");
logger.error("This is an error message");
logger.fatal("This is a fatal message");
我使用记录器的类位于
les.dam
包下

xml配置位于src/main/resources下


日志文件夹与源文件夹处于同一级别。

您的配置看起来不错。一个可能的原因是未找到配置文件和默认配置(仅控制台出现错误)

要进行验证,请将配置更改为从
开始。这将把内部log4j2调试日志打印到控制台

您的
log4j2.xml
配置文件是否位于
src/main/resources
中更新:谢谢你的更新,所以是的,很好



您能先用绝对路径配置文件附加器吗


可以显示执行日志记录的类的完整包名吗?

必须检查log4j2是否使用您提供的log4j2.xml,而不是默认配置

  • 更改log4j2.xml
  • 配置状态=“跟踪”monitorInterval=“60”

    然后检查控制台输出

  • 更改控制台附加器的模式布局
  • %d{yyyy-MM-dd HH:MM:ss.SSS}[%-5level][%t]%c{1}-%msg%n

    然后检查控制台输出

    如果log4j正在使用log4j2.xml,请检查FileAppender配置

    如果log4j未使用log4j2.xml。
    -Dlog4j.configurationFile=src/main/resources/log4j2.xml

    是,配置在src/main/resources中。我尝试调试跟踪并给你反馈。你能先用绝对路径配置文件附加器吗?另外,请显示正在记录的类的包名。