log4j2 - 在外部 log4j 配置中包含类路径资源
问题描述
我使用外部 log4j 配置并使用 org.apache.logging.log4j.core.config.Configurator 将其加载到 servlet 上下文侦听器中
我想引用一些在构建时生成的应用程序属性(如应用程序版本)。这是我想做的事情:
/外部文件夹/log4j.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration xmlns:xi="http://www.w3.org/2001/XInclude"
monitorInterval="60">
<xi:include href="log4j2-properties.xml" />
<Appenders>
<Console name="stdout" target="SYSTEM_OUT">
<PatternLayout pattern="%d %5p %t [${app-version}] %m (%F:%L) %n" />
</Console>
</Appenders>
<!-- ... -->
</Configuration>
log4j2-properties.xml
应该是类路径资源,@version@被 gradle 过滤。
<?xml version="1.0" encoding="UTF-8"?>
<Properties>
<Property name="app-version">@version@</Property>
</Properties>
但是,这种方法不起作用。我只能从与顶级 log4j.xml 相同的文件夹中 xinclude 资源
我该如何解决我的问题?
(我知道如何使用 logback 来做到这一点,但我想升级到 log4j2)
解决方案
推荐阅读
- ruby - Ruby TZInfo 和 ActiveSupport::TimeZone 无法识别大多数时区缩写
- javascript - 从另一个 js 文件导入所有导入
- javascript - 试图请求用户在 React 应用程序中使用相机和麦克风的权限
- javascript - 使用 cookie 进行身份验证以进行网络抓取?
- javascript - 如何使用变量引用在 Javascript 中修改嵌套对象的内部属性
- excel - Excel VBA 新手,尝试嵌套循环并出现编译错误
- docker - 在 PhpStorm 中附加 Vagrant 托管的 Gremlin-Server 作为数据源
- html - 在 JQuery 中的 AJAX 之前执行 for 循环
- java - Java 如何设置它的路径以及如何更改它?
- java - LeetCode 231:找出给定数字是否为 2 的幂的问题