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

Log4j 2.24.2使用JsonTemplateLayout报错,求控制台Appender替代方案

Log4j 2.24.2控制台Appender配置解决方案

问题原因

你遇到的JsonTemplateLayout无效错误,是因为该布局不属于Log4j 2.24.2的核心组件,它是独立的扩展模块,默认不会随核心包一起引入。

解决方案

方案1:使用核心包自带的布局(无需额外依赖)

如果不需要JSON格式的日志输出,直接替换为Log4j核心包内置的PatternLayout(最常用的格式化布局),配置示例如下:

<?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">
      <!-- 使用核心自带的PatternLayout,可自定义格式 -->
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>

  <Loggers>
    <Logger name="com.mycompany" level="INFO"/>
    <Root level="WARN">
      <AppenderRef ref="CONSOLE"/>
    </Root>
  </Loggers>

</Configuration>

方案2:保留JSON格式输出(需添加扩展依赖)

如果必须使用JSON格式日志,需要添加log4j-layout-template-json依赖,版本要与你的Log4j核心版本(2.24.2)一致:

Maven依赖

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-layout-template-json</artifactId>
    <version>2.24.2</version>
</dependency>

Gradle依赖

implementation 'org.apache.logging.log4j:log4j-layout-template-json:2.24.2'

添加依赖后,你原来的JsonTemplateLayout配置即可正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 17:42:42