log4j2 不使用 rollingFile 附加程序写入日志文件

log4j2 not writing to the log file with rollingFile appenders

我是 log4j2 新手

我正在尝试配置 xml 以使用 和 appender 将日志发送到日志文件中。好吧,appender 工作正常。我想使用 appender 这样它会每天清除日志文件,但是当它第一次创建日志文件时,它不会将任何日志消息写入由创建的文件中,所以我来这里得到一些建议

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="FATAL" >

<Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="${pattern}" />
    </Console>
    
    <RollingFile name="rollingfile" fileName="rolling.log"
    filePattern="rolling-%d{MM-dd-yyyy}.log">
        <PatternLayout pattern="${pattern}" />
        <Policies>
              <TimeBasedTriggeringPolicy interval="1" modulate="true" />
              <SizeBasedTriggeringPolicy size="10 MB" />
        </Policies>
    </RollingFile>
    
    <File name="file" fileName="test2.log">
        <PatternLayout pattern="${pattern}" />
    </File>     
    
</Appenders>


<Loggers>   
    <Root level="trace" >
        <AppenderRef ref="Console" />
        <AppenderRef ref="rollingfile" />
        <AppenderRef ref="file" />
    </Root>
</Loggers>
</Configuration>

你有 AppenderRef="rolling",但你的 Appender 名为 "rollingfile"。这些需要匹配。

此外,log4j 可能会发出配置有问题的警告。我建议您在配置的开头指定 <Configuration status="WARN" > 而不是 FATAL,这样您就可以看到这些警告。

可能需要指定${sys:pattern}才能读取系统属性。代替 ${pattern} 变量,首先尝试像 %d %p [%t] %m%n 这样的显式模式。