技术解析

日志组件可以在 springboot 加载配置文件之前启动吗?
0
2021-06-10 17:23:29
idczone
有个现象,当 application.yml 格式错误的时候,启动程序,控制台打印的日志格式并没有按照日志配置文件的来,甚至此时应该没有到日志组件加载的那一步。所以有没有什么方法可以让日志组件提前启动?

问这个问题的原因是,项目在 linux 用 java -jar xxz.jar >/dev/null 2>&1 &启动时,脚本把打印信息吞了,此时系统配置文件格式抗投诉服务器错误的日志也不会打印了。所以在不改动脚本的情况下可以吗????
这个时候日志相关的 bean 还没有加载进来,springboot 好像有种机制是先把要打印的放在缓冲区, 等加载完后再打印。

那就是没法搞到指定文件?只能靠修改 shell 脚本来打印了么。有没有可能在监听器里面实现

Deferred Log that can be used to store messages that shouldn't be written until the logging system is fully initialized.
你参考下这个 API:Deferred Log

deferred log 在 logback 初始化前用的是 commons-logging
"
The name (commons-logging.properties) of the properties file to search for.
"

在 main 方法执行 application run 之前就使用 logger 。。。这样 logger 就在 application 启动之前启动了

比如 logback 这种...但是 spring-logback.xml 和 logback.xml 不知道能不能共存..有个不确定的问题是 spring logger starter 会不会对 logback reconfigure... 如果不能的话。。spring-logback.xml 就没啥用了

写在 bootstrap.yml 里面

我去查一下,我今天才刚知道有这么个 log

这个只是配置文件会优先读到吧

我尝试过,但打印的格式不是自定义的,说明日志组件还是没有初始化完成吧

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服