Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将log4j.xml的属性配置外部化_Java_Xml_Logging_Log4j_Gemfire - Fatal编程技术网

Java 将log4j.xml的属性配置外部化

Java 将log4j.xml的属性配置外部化,java,xml,logging,log4j,gemfire,Java,Xml,Logging,Log4j,Gemfire,背景:我为基于spring的应用程序配置了log4j.xml文件,如下所示 <?xml version="1.0" encoding="UTF-8"?> <Configuration status="FATAL" shutdownHook="disable" packages="com.gemstone.gemfire.internal.logging.log4j"> <Properties> <Property name="gemfire-patt

背景:我为基于spring的应用程序配置了log4j.xml文件,如下所示

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="FATAL" shutdownHook="disable" packages="com.gemstone.gemfire.internal.logging.log4j">
  <Properties>
<Property name="gemfire-pattern">[%level{lowerCase=true} %date{yyyy/MM/dd HH:mm:ss.SSS z} &lt;%thread&gt; tid=%tid %C{1.}] %message%n%throwable%n<    /Property>
  </Properties>
  <Appenders>
    <Console name="STDOUT" target="SYSTEM_OUT">
      <PatternLayout pattern="${gemfire-pattern}"/>
    </Console>
      <RollingFile name="eventLogFile" fileName="/opt/data/service/logs/events.log"
                   filePattern="/opt/data/service/logs/events-%d{yyyy-MM-dd}-%i.log">
          <PatternLayout>
              <pattern>%d{dd/MMM/yyyy HH:mm:ss,SSS} %p - %c{1}: %m%n</pattern>
          </PatternLayout>
          <Policies>
              <TimeBasedTriggeringPolicy interval="1"/>
              <SizeBasedTriggeringPolicy size="100 MB"/>
          </Policies>
          <DefaultRolloverStrategy max="20" fileIndex="max"/>
      </RollingFile>
  </Appenders>
  <Loggers>
    <Logger name="com.gemstone" level="INFO" additivity="true">
        <filters>
            <MarkerFilter marker="GEMFIRE_VERBOSE" onMatch="DENY" onMismatch="NEUTRAL"/>
        </filters>
    </Logger>
    <Logger name="com.app.mypackage" level="INFO" additivity="true">
       <AppenderRef ref="eventLogFile"/>
    </Logger>
    <Root level="INFO">
      <AppenderRef ref="STDOUT"/>
    </Root>
  </Loggers>
</Configuration>

[%level{lowerCase=true}%date{yyyyy/MM/dd HH:MM:ss.SSS z}%thread tid=%tid%C{1.}]%消息%n%throwable%n
在我的例子中,
log4j.component.properties
没有被log4j拾取

关于如何从log4j.xml中的外部属性文件中获取属性值,您有什么想法吗

参考资料:


提前感谢。

log4j.component.properties
用于添加特定于log4j的系统属性,如
log4j.configurationFile
org.apache.logging.log4j.level

要引用用户定义的属性,请在logback配置中包含属性文件,并使用
${KEY}


${countryName}
…
<Property name="gemfire-pattern">[$${countryName} %level{lowerCase=true} %date{yyyy/MM/dd HH:mm:ss.SSS z} &lt;%thread&gt; tid=%tid %C{1.}] %message%n%throwable%n<    /Property>