log4j 和 JsonTemplateLayout

问题描述 投票:0回答:1

最近,我遇到了 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 来给我正确的答案,我应该为我的控制台附加程序使用什么?

java log4j
1个回答
0
投票

“入门”页面上的示例使用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>
© www.soinside.com 2019 - 2024. All rights reserved.