繁体   English   中英

如何将 SpEL 表达式加载到 logback-spring.xml

[英]How to load a SpEL expression into logback-spring.xml

我的 application.properties 文件中有一个 SpEL 表达式,我试图将其加载到我的 logback-spring.xml 文件中。 我已经打印了 SpEL 表达式,所以我知道它的计算正确。 但是 logback 会继续打印 SpEL 而不是对其进行评估。

在我的道具文件中,我有

user.name= #{user.firstName.concat(' ').concat(user.lastName)}

在我的 logback 文件中,我有

<springProperty scope="context" name="user_name" source="user.name" />
...
<pattern>name=${user_name} %msg%n </pattern>

它不打印名称,而是打印“name=#{user.firstName.concat(' ').concat(user.lastName)}”

我从我的 prop 文件中加载了另一个值(不是 SpEL 表达式),并且该值可以正常工作。 所以我知道我犯的错误是我没有让 logback 文件评估表达式

logback-spring.xml文件中处于活动状态的 Spring logback 扩展不支持 SPEL 表达式评估。 此处描述了唯一支持的功能: https ://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging.logback-extensions

此外,您对属性文件中 SPEL 评估的假设似乎不正确:

在解析这些文件和填充环境时,不会处理来自应用程序属性文件的 SpEL 表达式。

https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config.typesafe-configuration-properties.vs-value-annotation

暂无
暂无

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

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