java - 如何在 Spring Boot 中获取 log4j2.properties 文件以从 pom.xml 读取文件名

标签 java spring maven spring-boot

我一直在互联网上搜索,但我可能错过了。但我试图在我的代码中实现的是,让 log4j2.properties 文件读取 Spring boot 项目中 pom.xml 中定义的文件名。像下面这样的东西。

pom.xml:

<properties>
 <log.file>/expo/net/logs/xol/aws.log</log.file>
 <status.file>/export/net/logs/xol/tdlg.log</status.file>
</properties>

log4j2.属性:

appender.main.type=RollingFile
appender.main.name=MAIN
#appender.main.fileName=${log.file}
appender.main.filePattern=${log.file}.%d{yyyyMMddHH}
appender.main.layout.type=PatternLayout
appender.main.layout.pattern=%d{MM/dd/yyyy HH:mm:ss.SSS} %-5p  %highlight{%t}  %replace{%msg}{\n\r|\n|\r}{ }%n
appender.main.policies.type=Policies
appender.main.policies.time.type=TimeBasedTriggeringPolicy
appender.main.policies.time.interval=1
appender.main.policies.time.modulate=true

我的期望是,当运行 Maven 时,应该替换正确的值。 有什么建议我哪里出错了吗?

最佳答案

我想我找到了解决方案。有人问过类似的问题。

Maven resource filtering not working - because of spring boot dependency

下面的链接对此进行了解释

https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html

在我的 log4j2.properties 文件中,我将“${”和“}”替换为“@”。

appender.main.type=RollingFile
appender.main.name=MAIN
#appender.main.fileName=@log.file@
appender.main.filePattern=@log.file@.%d{yyyyMMddHH}
appender.main.layout.type=PatternLayout
appender.main.layout.pattern=%d{MM/dd/yyyy HH:mm:ss.SSS} %-5p  %highlight{%t}  %replace{%msg}{\n\r|\n|\r}{ }%n
appender.main.policies.type=Policies
appender.main.policies.time.type=TimeBasedTriggeringPolicy
appender.main.policies.time.interval=1
appender.main.policies.time.modulate=true

效果非常好。感谢大家的所有投入。

关于java - 如何在 Spring Boot 中获取 log4j2.properties 文件以从 pom.xml 读取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48813686/

相关文章:

java - 如何在 JFrame 中的图像上添加文本?

java - 如何创建一个简单的json结果集?

java - (Spring/Hibernate) 初始化子对象策略

java - Eclipse中转换为Maven后无法运行java项目

maven - 更改 Maven Archetype 中的包属性

java - opencsv 无法识别行中的所有列

java - infinispan 配置 xml 错误

java - Spring 与 Struts 1 集成 - 将依赖项注入(inject)到 ActionForm

java - Spring 单例对象状态

java - Eclipse Java EE 新 Maven 项目 : Could not resolve archetype