【发布时间】:2014-12-27 14:33:50
【问题描述】:
提到读取env属性的log4j2文档我们必须使用$${env:USERNAME}
我发现带有单个 $ 的 ${env:USERNAME} 仍然有效。
有谁知道我们为什么要使用$$?!
【问题讨论】:
标签: java logging configuration log4j log4j2
提到读取env属性的log4j2文档我们必须使用$${env:USERNAME}
我发现带有单个 $ 的 ${env:USERNAME} 仍然有效。
有谁知道我们为什么要使用$$?!
【问题讨论】:
标签: java logging configuration log4j log4j2
来自http://logging.apache.org/log4j/2.x/manual/configuration.html 手册页:
StrLookup 处理的一个有趣特性是,当一个变量 每次使用多个前导“$”字符声明引用 变量被解析,前导“$”被简单地删除。在里面 前面的例子中,“Routes”元素能够解析 运行时变量。为了允许这样做,前缀值被指定为 带有两个前导“$”字符的变量。当配置文件 首先处理第一个变量被简单地删除。因此,当 Routes 元素在运行时评估它是变量 声明 "${sd:type}" 导致事件被检查 StructuredDataMessage,如果存在,则其类型的值 属性用作路由键。并非所有元素都支持 在运行时解析变量。这样做的组件将专门 在他们的文档中指出这一点。
【讨论】: