首页 > 解决方案 > 如何在 Log4j2 的类路径之外设置 JsonTemplateLayout eventTemplateUri

问题描述

在 Log4j2 的 JsonTemplateLayout 中,我使用 eventTemplateUri: "classpath:LayoutTemplate.jsson" 和位于 rc/main/resources 中的 json 文件没有问题。但是,我需要将此文件保存在类路径之外。所以我想使用类似于我们添加日志文件名的方式的文件位置:c:\...

但是当我使用 eventTemplateUri: "C:\ ....\LayoutTemplate.json" 时会引发错误

错误消息是“无法为元素 JsonTemplateLayout 创建类型为 org.apache.logging.log4j.layout.template.json.JsonTemplateLa yout 的插件:java.lang.RuntimeException:读取 URI 失败:C:...我错过了什么吗在这里?是否可以将此 json 文件放在类路径之外?

谢谢!

标签: javalog4j2

解决方案


所有*Uri配置旋钮都需要JsonTemplateLayout一个 URI 字符串。在您的情况下,缺少URI方案。eventTemplateUri应该看起来像你的file:///C:/path/to/LayoutTemplate.json情况。对于内部,请参阅如何o.a.l.l.l.template.json.util.Uris.readUri(String,Charset)实现。


推荐阅读