我们的应用程序的标准log4j2.xml
文件包含配置时属性
<Properties>
<Property name="log-path">/some/writable/path/on/server</Property>
</Properties>
然后在appenders中引用。到目前为止工作正常。
我需要获取此属性的值,该属性在编译时是未知的,甚至不能保证在运行时定义。
如果已定义,我需要从某个工具获取“log-path”属性。否则null是一个很好的返回值。
我该如何完成这项任务?
答案 0 :(得分:3)
final LoggerContext loggerContext = (LoggerContext) LogManager.getContext(true);
final Configuration config = loggerContext.getConfiguration();
final StrSubstitutor strSubstitutor = config.getStrSubstitutor();
final StrLookup variableResolver = strSubstitutor.getVariableResolver();
final String propertyValue = variableResolver.lookup("propertyName");
答案 1 :(得分:2)
Map<String, String> properties = ((LoggerContext) LogManager.getContext(false)).getConfiguration().getProperties();