获取log4j2属性的代码

时间:2013-12-14 15:09:18

标签: java log4j2

这是我的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文件中的文本)?

2 个答案:

答案 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中使用 $ {夹}