You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Log4j2配置DailyRollingFileAppender提示appender无效元素错误如何解决

问题原因
  • 你的项目使用的是Log4j 2.x版本,配置文件为log4j2.xml,但新增的文件日志配置采用的是Log4j 1.x的语法规范,两者配置格式完全不兼容
  • Log4j 2.x不识别1.x版本的小写<appender>、<param>标签,也不支持org.apache.log4j.DailyRollingFileAppender这个1.x的组件,因此会抛出无效元素、无法定位File appender的报错
正确配置方式

Log4j 2.x中自带按时间滚动的日志实现,使用<RollingFile>标签配合时间触发策略即可实现按天滚动存储,完整可用的配置如下:

<?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>

        <!-- 按天滚动的文件日志配置 -->
        <RollingFile name="File" 
                     fileName="logs/trace.log"
                     filePattern="logs/trace-%d{yyyy-MM-dd}.log"
                     append="true"
                     encoding="UTF-8">
            <PatternLayout pattern="%d{[dd.MM.yyyy HH:mm:ss.SSS]} %l %p:%n    %m%n"/>
            <Policies>
                <!-- 时间滚动策略,interval=1 单位为filePattern中最小的时间单位,这里是天,即每天滚动一次 -->
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            </Policies>
            <!-- 可选配置:保留最近30天的日志,避免文件过多占用磁盘 -->
            <DefaultRolloverStrategy max="30"/>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="trace">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

配置说明

  • fileName:指定当前正在写入的日志文件路径
  • filePattern:指定日志滚动后的命名格式,这里配置的%d{yyyy-MM-dd}代表按天分割,滚动后的文件名为trace-2024-05-20.log这类格式
  • TimeBasedTriggeringPolicy:时间触发策略,interval="1"代表每1个单位时间滚动一次,单位由filePattern中配置的最小时间粒度决定,此处配置到天,就是每天滚动一次;modulate="true"代表滚动时间对齐到每天0点
  • DefaultRolloverStrategy:可选配置,设置最多保留的历史日志文件数量,避免长期运行日志占用磁盘过多

内容的提问来源于stack exchange,提问作者Alexei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 17:15:08