Log4j2:不写入文件

Log4j2: not write into file

我将 Log4j2 添加到我的项目中

implementation 'org.springframework.boot:spring-boot-starter-log4j2'

并添加了下一个属性:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT" follow="true">
            <PatternLayout pattern="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx"/>
            <!-- Крутое, но бесцветное логирование-->
<!--            <PatternLayout pattern="%highlight{%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36}.%M():%L - %msg%n}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=black, DEBUG=green bold, TRACE=blue}"/>-->
        </Console>
        <RollingFile name="File" fileName="C:/Users/Mi/output.log" filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz" immediateFlush="true">
            <PatternLayout>
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
        </Root>
        <Logger name="org.apache.logging.log4j.filelogger" level="info" additivity="false">
            <AppenderRef ref="File"/>
        </Logger>
    </Loggers>
</Configuration>

应用程序将日志写入控制台,但不在文件中。在我等待的过程中,应用程序应按 url C:/Users/Mi/output.log 将日志写入文件,它会自动创建,我无法在应用程序运行时将其删除,但没有日志。求指点,怎么办。

您只是将 org.apache.logging.log4j.filelogger 包中的内容记录到 "File" 附加程序中。记录器名称 属性 是 package/class 引用

您应该执行类似这样的操作来将日志记录到文件而不是控制台:

<Root level="info">
    <AppenderRef ref="File"/>
</Root>

如果你想要控制台和文件做:

<Root level="info">
    <AppenderRef ref="File"/>
    <AppenderRef ref="Console"/>
</Root>