繁体   English   中英

log4.xml中用于访问Java系统属性的表达语言是什么?

[英]What is the expression language being used in log4.xml for accessing java system properties?

我在log4j.xml中使用表达式来设置严重性级别,但是我想知道这些表达式还可以做什么。 例如,添加一些逻辑或更复杂的分辨率,我找不到log4j.xml文件支持的表达语言。

例如,我想设置一个属性名称,该属性是动态的,具体取决于正在配置的应用程序的上下文,这样我就可以使用java系统属性将该配置传达给同一个应用程序的多个版本的log4j配置:

Application version 1 --> app1.mypackage.severity
Application version 2 --> app2.mypackage.severity

appX在初始化时由应用程序容器解决,因此我的问题可以减少到知道如何连接两个表达式的值,但是我找不到log4j使用的表达式语言是什么。

我想要这样的东西:

...
<logger name="mypackage" additivity="false">
    <level value="${$appVersion+$mypackage.severity}" />
    <appender-ref ref="dailyRollingFile" />
</logger>
...

http://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution

本页描述如何在log4j配置文件中使用变量。

大多数apache工具(如maven和ant)的基本格式相同。

${name}

其中name定义为某处的属性(环境变量,系统属性,局部属性等)。 检查链接以查看各种设置属性的方法。

要将变量嵌入变量中,可以在配置xml中使用局部属性定义,例如:

<Properties>
  <Property name="loggerlevel">${appVersion}${mypackage:severity}</Property>
</Properties>
...
<logger name="mypackage" additivity="false">
  <level value="${loggerlevel}" />
  <appender-ref ref="dailyRollingFile" />
</logger>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM