我最近更新了从Spring Boot 1.2.7到v2.0.0的代码库。在大多数情况下,这是成功的,但我注意到功能发生了意外的变化,其中在启动期间发生故障时缺少堆栈跟踪。我不确定我是否遗漏了某些内容,这是有意的,或者是否在这两个版本之间引入了错误。
该项目使用Spring Boot Maven插件。当包含JVM参数并且应用程序无法启动时(可能是由于Spring连接不正确,端口已在使用中等),将不会记录堆栈跟踪以解释应用程序无法启动的原因。如果省略JVM参数,则堆栈跟踪将包含在日志中。在升级之前,使用JVM参数时包含堆栈跟踪。
当插件包含JVM参数并且应用程序没有以其他方式分配JVM时,插件会分配JVM,我想知道它是否与此有关。
答案 0 :(得分:0)
为了帮助解决这个问题,我开始将POM的简化版本和#34;以及#34;类。虽然该项目使用Logback进行日志记录,但在创建简化版本的过程中,我发现Log4J通过其他几个库传递。当我从类路径中删除Log4J依赖项时,启动期间的日志记录按预期工作。
在项目中包含Log4J会在Spring Boot版本升级之前进行。所以,这里肯定有一个缺失的部分,因为我不知道是什么改变导致破损。然而,前进的道路似乎很清楚,因为Log4J不应该包含在项目中。我将很乐意接受任何其他答案,并提供有关可能导致不同行为的更多信息,但如果没有,我会认为这已得到解决。