1. 描述

log4j2 的xml配置有两种风格(concise and strict:简洁和严格),使用strict风格时,启动项目报错。
ERROR Appenders contains an invalid element or attribute “appender”。

  • 配置:
<configuration status="warn" monitorInterval="30">
	……………………………………
	
        <!-- 日志输出:ConsoleAppender-控制台输出。 -->
        <appender type="Console" name="STDOUT" target="SYSTEM_OUT" follow="true">
            <Layout type="PatternLayout" pattern="${CONSOLE_LOG_PATTERN}"/>
        </appender>
  • 环境
IDE: 2021.3
spring boot: 2.5.6 (spring-boot-starter-log4j2: 2.5.6 --- log4j-core: 2.14.1)

2. 问题

  • ERROR Appenders contains an invalid element or attribute “appender”
2022-03-21 17:45:26,229 main ERROR Appenders contains an invalid element or attribute "appender"
2022-03-21 17:45:26,242 main ERROR Unable to locate appender "STDOUT" for logger config "root"

3. 官方提供的 xml 的两种风格

* **Concise Syntax:**

  • 区别:
   <!-- log4j2 用type的属性值,来表示一些type属性对应的标签元素 -->
   <Layout type="PatternLayout"> 等同于 <PatternLayout> 
   <appender type="Console" />  等同于 <Console />

4. 解决

  • configuration 元素增加 strict=“true” (strict默认为false,第3点的官方图片上有,找了好久才看到……)。
<configuration status="warn" monitorInterval="30" strict="true">

5. 资料

log4j2 手册configuration:https://logging.apache.org/log4j/2.x/manual/configuration.html

Logo

一站式 AI 云服务平台

更多推荐