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 的两种风格
- 区别:
<!-- 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