最近,我遇到了 log4j 的问题,最终导致依赖冲突,但作为其中的一部分,我使用了 https://logging.apache.org/log4j/2.x/manual/getting 中的 log4j2.xml -started.html
<?xml version="1.0" encoding="UTF-8"?>
<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://logging.apache.org/xml/ns"
xsi:schemaLocation="
https://logging.apache.org/xml/ns
https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
<Console name="CONSOLE">
<JsonTemplateLayout/>
</Console>
</Appenders>
<Loggers>
<Logger name="com.mycompany" level="INFO"/>
<Root level="WARN">
<AppenderRef ref="CONSOLE"/>
</Root>
</Loggers>
</Configuration>
当我运行它时,我收到以下消息:
2024-12-11T15:13:49.167Z main ERROR Console contains an invalid element or attribute "JsonTemplateLayout"
我使用的是 log4j 2.24.2。由于不能依赖 apache 来给我正确的答案,我应该为我的控制台附加程序使用什么?
“入门”页面上的示例使用JSON 模板布局。 作为最近添加的组件,JTL 作为单独的 Maven 模块进行分发:
log4j-layout-template-json
。
使用示例配置所需的确切依赖项记录在如何安装 Log4j Core 来运行我的应用程序?。 假设您在依赖管理部分使用
log4j-bom
(建议防止传递依赖不匹配),您需要:
<!-- Logging implementation (Log4j Core) -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Log4j JSON-encoding support -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-layout-template-json</artifactId>
<scope>runtime</scope>
</dependency>