这是我的log4j2.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Properties>
<Property name="runid">$${date:YYYYMMddHHmmssSSS}</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{YYYY/MM/dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="File" fileName="D:\Users\Rich\Documents\TestData\PagemonTest12\LogRun\Log-${runid}.log">
<PatternLayout pattern="%d{YYYY/MM/dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
它根据当前日期和时间创建一个名为runid的属性。如何在Java 7应用程序中以字符串形式访问runid(创建的runid,而不是xml文件中的文本)?
答案 0 :(得分:0)
这是从log4j2.xml获取属性的代码:
if (ctx == null) {
ctx = (LoggerContext) LogManager.getContext();
config = (XMLConfiguration) ctx.getConfiguration();
}
app = config.getStrSubstitutor().getVariableResolver()
.lookup(Constants.CONF_APP_PROPERTIE);
答案 1 :(得分:-1)
$ {包:br.com.domain.sadt.server.config:config.log.folder}
其中: - br.com.domain.sadt.server.config =你的config.properties - config.log.folder = key
在xml中使用 $ {夹}