当前位置: 首页 > 知识库问答 >
问题:

使用log4j2属性替换另一个文件中定义的属性

江佐
2023-03-14

我正在使用log4j2进行一个项目,我的log4j2中有一些值。可配置的属性。该项目还将包括其他组件的配置文件。理想情况下,我希望将所有配置保存在一个地方,以便能够在同一个文件中为log4j设置那些可配置的值,这样我就不会有两个不同的地方更改配置值(例如,包括环境变量)。

我在这方面找到的方法并不理想,比如让我的项目的其他部分从主配置文件中读取值,并将它们放入系统变量中,由log4j获取,因为我希望避免编写代码,在log4j自身的属性文件之外设置log4j。

有没有办法直接引用log4j2.properties?中其他属性文件中定义的值如果没有,这可能在log4j2可以使用的配置文件格式之一,如XML或JSON?

为了澄清,我知道log4j2中提供的各种查找方法,但由于我将这些值存储在不同的文件中,因此没有一种方法比直接引用该文件更“干净”。

共有1个答案

段干庆
2023-03-14

Log4j2配置有一个属性部分,如果事先知道所有键,您可以从另一个查找中获取每个值,例如系统属性查找或自定义查找。

建议从外部属性文件中获取Log4j2配置属性,作为Log4j2 JIRA问题跟踪器上的新功能请求。

 类似资料:
  • 我试图配置Tomcat 8使用Log4j2进行日志记录。 我找到了使用Log4j登录Tomcat的参考资料。它提供了一个示例log4j。将Log4j配置为与Tomcat的内部日志匹配的属性文件。对于Log4j2来说,大部分转换看起来非常简单,但最后将记录器映射到appender的部分让我感到困惑: 是否有人将此配置转换为使用Log4j2?我一直在使用Log4j2配置文档,并且已经阅读了Log4j2

  • 我只是想知道有没有什么方法可以为log4j中的属性替换提供默认值呢? 我想在Java系统属性中传递文件路径,然后与“${env:MySystemProperty}”一起使用。但如果开发人员忘记设置此属性怎么办?那么我希望在log4j2.xml中定义一些有意义的默认值。 你知道如何实现这个功能吗? 编辑: 环境替换对我不起作用: standalone.conf log4j2.xml 我可以在wild

  • 我创建了一个自定义追加器,但在运行测试时没有调用它。以下是这些属性的外观: 我的appender被称为WindowsEventLogappender。知道我的档案有什么问题吗?我看到了控制台测试消息,但没有看到来自我的appender的消息。现在我只是在我的自定义追加器中做一个system.out.println来验证它是否被调用。

  • 问题内容: 看看我的“ file.properties”: 为什么当我得到“ key2”的值时,我的结果是“ $ {key1} Martin!”。不像“我叫马丁!” => 我使用Java 6编程=>我使用java.util.Properties 问题答案: 您可能需要查看Apache配置, http://commons.apache.org/configuration/ 它支持的许多功能包括变量插

  • 问题内容: 我为该标题表示歉意。我找不到更好的方法来解释这种情况。 我使用URL http://www.exampledepot.com/egs/java.util/Props.html中所述的Property类加载属性文件。 我的问题是我可以在该属性文件中使用属性吗? 例: test.properties 其他语法有可能吗? 谢谢 问题答案: 以前从未见过。您当然 可以 制作自己的预处理器。只要

  • 问题内容: 我将sql存储在属性文件中,并使用spring注入它,这有效: 但出于可读性,我想要这样: 我需要使用什么正确的文本格式? 问题答案: 在行的末尾使用\ 另外,请注意任何尾随空格,因为Java在组装线时会寻找连续的反斜杠+换行符。 换种说法:反斜线必须是换行符之前该行的最后一个字符。