Docker环境下Apache Ignite启用结构化日志的问题与解决
解决Docker中Apache Ignite启用JsonTemplateLayout结构化日志的依赖问题
问题场景
在Docker容器运行的Apache Ignite中启用结构化日志:
- 已启用
log4j2模块并添加log4j2配置文件 - 配置里使用
<JsonTemplateLayout/>时,日志抛出错误:Console contains an invalid element or attribute "JsonTemplateLayout"
- 手动将
log4j-layout-template-json依赖JAR放入$IGNITE_HOME/libs目录后,又出现IllegalAccessError错误
核心解决方案:严格匹配依赖版本
问题根源在于log4j-layout-template-json的版本必须与Ignite自带的log4j系列依赖版本完全一致,否则会触发兼容性异常。
验证可行的依赖版本组合
log4j-api-2.17.1.jar:Ignite默认提供log4j-core-2.17.1.jar:Ignite默认提供ignite-log4j2-2.13.0.jar:Ignite默认提供log4j-layout-template-json-2.17.1.jar:手动添加(注意:2.18.x及以上版本不兼容)
操作步骤提示
- 查看
$IGNITE_HOME/libs目录,确认Ignite自带的log4j相关JAR版本 - 下载对应版本的
log4j-layout-template-jsonJAR包,放入$IGNITE_HOME/libs目录 - 重启Ignite容器,验证结构化日志输出正常
内容的提问来源于stack exchange,提问作者loosed
相关产品推荐
相关产品推荐

