如何让log4j2.properties文件从Spring Boot中的pom.xml读取文件名

时间:2018-02-15 18:07:01

标签: java spring maven spring-boot

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

的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.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

我的期望是在运行maven时应该替换正确的值。 我出错的任何建议?

1 个答案:

答案 0 :(得分:0)

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

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

像魅力一样工作。谢谢大家的所有投入。