1 package ch.qos.logback.classic.servlet;
2
3 import jakarta.servlet.ServletContextEvent;
4 import jakarta.servlet.ServletContextListener;
5
6 import org.slf4j.ILoggerFactory;
7 import org.slf4j.LoggerFactory;
8
9 import ch.qos.logback.classic.LoggerContext;
10 import ch.qos.logback.classic.util.StatusViaSLF4JLoggerFactory;
11 import ch.qos.logback.core.spi.ContextAwareBase;
12
13
14
15
16
17
18
19
20 public class LogbackServletContextListener implements ServletContextListener {
21
22 ContextAwareBase contextAwareBase = new ContextAwareBase();
23
24 @Override
25 public void contextInitialized(ServletContextEvent sce) {
26
27 }
28
29 @Override
30 public void contextDestroyed(ServletContextEvent sce) {
31
32 ILoggerFactory iLoggerFactory = LoggerFactory.getILoggerFactory();
33 if (iLoggerFactory instanceof LoggerContext) {
34 LoggerContext loggerContext = (LoggerContext) iLoggerFactory;
35 contextAwareBase.setContext(loggerContext);
36 StatusViaSLF4JLoggerFactory.addInfo("About to stop " + loggerContext.getClass().getCanonicalName() + " ["
37 + loggerContext.getName() + "]", this);
38 loggerContext.stop();
39 }
40 }
41
42 }