【发布时间】:2016-08-30 23:45:03
【问题描述】:
Spring Boot 有一个特性,它可以自动检测任何可用的日志框架(基于 org.springframework.boot.logging.LoggingSystem.SYSTEMS 中列出的类的存在 - Logback、Log4j 或 JUL)并从应用程序提供的日志配置文件或 Spring 配置它Boot 自己的默认配置文件,与 Spring Boot 本身打包在一起。
当将 Grails 3 应用程序作为 war 文件部署到 JBoss EAP 6(又名 WildFly 7)时,这会导致问题。 应用程序初始化时,Spring Boot 找到 JBoss 提供的 JUL 日志实现 (org.jboss.logmanager.LogManager),并在其上调用readConfiguration() 方法,从而弄乱了日志配置。
- 我想继续使用 JBoss 提供的日志记录实现和 JBoss 提供的日志记录配置,而不是在我的 war 文件中打包单独的日志记录实现。这使我可以从服务器的配置文件中配置应用服务器上的所有应用程序。
有什么方法可以禁用 Spring Boot 的日志自动配置?(我对 Spring Boot 检测和使用日志框架没问题;我只是不这样做'不希望它尝试配置它。)我查看了源代码,但没有看到任何挂钩来控制它。
相关源码:
可能的想法:
- 在收到
ApplicationStartedEvent或ApplicationEnvironmentPreparedEvent事件(触发日志记录配置)之前,以某种方式从应用程序侦听器列表中删除LoggingApplicationListener?
这些其他相关问题不解决了我的问题,因为用例不同:
- Disable automatic logging configuration in spring boot
- Spring boot and JBoss 8 Wildfly log configuration application
- Spring-boot application configuration
- Spring-Boot Logging configuration when deployed as .war
版本:
- Spring Boot - 1.3.3.RELEASE
- Grails - 3.1.5
【问题讨论】:
标签: spring-boot