I have updated our project's dependencies and suddenly I stopped getting logs after server is terminated. We run some clean up code when Spring context is destroyed and the logs were just not in my console.
[INFO] Stopped ServerConnector@4726a64c{HTTP/1.1, (http/1.1)}{0.0.0.0:18080}
[INFO] node0 Stopped scavenging
15:22:18,667 |-INFO in ch.qos.logback.classic.servlet.LogbackServletContextListener@5e91682d - About to stop ch.qos.logback.classic.LoggerContext [default]
[INFO] Closing Spring root WebApplicationContext
[INFO] Stopped o.e.j.m.p.JettyWebAppContext@51f311f3{/chatserver,[file:///webapp/, file:///another/webapp/],STOPPED}{[file:///webapp/, file:///another/webapp/]}
Luckily, there was a clue to what might be happening: About to stop ch.qos.logback.classic.LoggerContext
. It seemed like logback had stopped before Spring context did. So the code was still run it simply didn't log anything ¯\_(ツ)_/¯.
Huge thanks to this StackOverflow answer that explains exactly what needs to be done.
<!-- web.xml -->
<context-param>
<param-name>logbackDisableServletContainerInitializer</param-name>
<param-value>true</param-value>
</context-param>
<!-- .... -->
<!-- Configure Logback first so that it will be destroyed last -->
<listener>
<listener-class>ch.qos.logback.classic.servlet.LogbackServletContextListener</listener-class>
</listener>
<!-- other listeners follow -->