1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package ch.qos.logback.classic.servlet;
16
17 import static ch.qos.logback.core.CoreConstants.DISABLE_SERVLET_CONTAINER_INITIALIZER_KEY;
18
19 import java.util.Set;
20
21 import jakarta.servlet.ServletContainerInitializer;
22 import jakarta.servlet.ServletContext;
23 import jakarta.servlet.ServletException;
24
25 import ch.qos.logback.classic.util.StatusViaSLF4JLoggerFactory;
26 import ch.qos.logback.core.util.OptionHelper;
27
28
29
30
31
32
33
34
35 public class LogbackServletContainerInitializer implements ServletContainerInitializer {
36
37 @Override
38 public void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException {
39
40 if (isDisabledByConfiguration(ctx)) {
41 StatusViaSLF4JLoggerFactory.addInfo("Due to deployment instructions will NOT register an instance of "
42 + LogbackServletContextListener.class + " to the current web-app", this);
43
44 return;
45 }
46
47 StatusViaSLF4JLoggerFactory.addInfo(
48 "Adding an instance of " + LogbackServletContextListener.class + " to the current web-app", this);
49 LogbackServletContextListener lscl = new LogbackServletContextListener();
50 ctx.addListener(lscl);
51 }
52
53
54
55
56
57
58
59
60
61 boolean isDisabledByConfiguration(ServletContext ctx) {
62 String disableAttributeStr = null;
63 Object disableAttribute = ctx.getInitParameter(DISABLE_SERVLET_CONTAINER_INITIALIZER_KEY);
64 if (disableAttribute instanceof String) {
65 disableAttributeStr = (String) disableAttribute;
66 }
67
68 if (OptionHelper.isNullOrEmptyOrAllSpaces(disableAttributeStr)) {
69 disableAttributeStr = OptionHelper.getSystemProperty(DISABLE_SERVLET_CONTAINER_INITIALIZER_KEY);
70 }
71
72 if (OptionHelper.isNullOrEmptyOrAllSpaces(disableAttributeStr)) {
73 disableAttributeStr = OptionHelper.getEnv(DISABLE_SERVLET_CONTAINER_INITIALIZER_KEY);
74 }
75
76 return Boolean.parseBoolean(disableAttributeStr);
77 }
78
79 }