spring 还没有启动完成,log4j2 找不到配置路径

2022-04-28 15:59:51 +08:00
 BrookO

log4j2 中的配置 <Property name="LOG_HOME" value="${spring:logging.home:-/root/app/logs/ntpTime/}"/>

实际情况: spring 还没有启动完成,此时读取不了 yml 中的 logging.home,会生成一个 spring:logging.home 目录. 等到 spring 启动完成后会在配置的 logging.home 下生成文件

疑问: 虽然 Property value 配置了默认路径,但是会生成一个垃圾文件(因为 spring 没有启动完成读取不到配置,只能用默认的),请问这个有没有什么解决办法

1074 次点击
所在节点    程序员
4 条回复
mouxiaoshi
2022-04-28 16:05:21 +08:00
应该是<springProperty/> 吧
liangkang1436
2022-04-28 16:26:37 +08:00
试试这个

https://logging.apache.org/log4j/2.x/manual/lookups.html#SpringLookup
This Lookup will return null values until Spring Boot initializes application logging. The Spring Boot Lookup requires the log4j-spring-boot jar be included as a dependency.
翻译:Spring Boot 初始化应用日志之后,spring 上下文才会有值,同时,需要依赖 log4j-spring-boot
liangkang1436
2022-04-28 16:27:34 +08:00
如果还不行,你就把 logger 封装成一个 bean 来用,
BrookO
2022-04-28 17:02:17 +08:00
@liangkang1436
@mouxiaoshi
感谢提供思路,解决方案在 https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging.custom-log-configuration

简单点说就是把 log4j2.xml 改成 log4j2-spring.xml,具体原因未知

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/849841

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX