这是Spring @PreDestroy: No logging because Logback stops too soon的后续行动。
在那个问题中,用户Dovmo提出了一个很好的建议,即如何在servlet停止时停止将Logback作为ServletContainerInitializer
进行自我毁灭。这很有效。
我现在正在寻找一种能够尽可能晚地破坏Logback的方法,最好是在每个其他bean被破坏之后。从理论上讲,我可以为每个bean添加@DependsOn(logback-bean)
,但这会非常难看。我也尝试以@WebListener
收听并听取ServletContextEvent
事件,但这些事件似乎是在调用某个随机bean的第一个@PreDestroy
之前到达的。
在所有bean被破坏后,是否有更好的方法来执行代码?这将解决强制Logback始终记录所有内容的难题。