log4j-jakarta-web/src/main/java/org/apache/logging/log4j/web/Log4jServletFilter.java [41:86]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public class Log4jServletFilter implements Filter {

    private static final Logger LOGGER = StatusLogger.getLogger();

    static final String ALREADY_FILTERED_ATTRIBUTE = Log4jServletFilter.class.getName() + ".FILTERED";

    private ServletContext servletContext;
    private Log4jWebLifeCycle initializer;

    @Override
    public void init(final FilterConfig filterConfig) throws ServletException {
        this.servletContext = filterConfig.getServletContext();
        LOGGER.debug("Log4jServletFilter initialized.");

        this.initializer = WebLoggerContextUtils.getWebLifeCycle(this.servletContext);
        this.initializer.clearLoggerContext(); // the application is mostly finished starting up now
    }

    @Override
    public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain)
            throws IOException, ServletException {
        if (request.getAttribute(ALREADY_FILTERED_ATTRIBUTE) != null) {
            chain.doFilter(request, response);
        } else {
            request.setAttribute(ALREADY_FILTERED_ATTRIBUTE, Boolean.TRUE);

            try {
                this.initializer.setLoggerContext();

                chain.doFilter(request, response);
            } finally {
                this.initializer.clearLoggerContext();
                // Execute once per thread
                request.removeAttribute(ALREADY_FILTERED_ATTRIBUTE);
            }
        }
    }

    @Override
    public void destroy() {
        if (this.servletContext == null || this.initializer == null) {
            throw new IllegalStateException("Filter destroyed before it was initialized.");
        }
        LOGGER.debug("Log4jServletFilter destroyed.");

        this.initializer.setLoggerContext(); // the application is just now starting to shut down
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jServletFilter.java [41:86]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public class Log4jServletFilter implements Filter {

    private static final Logger LOGGER = StatusLogger.getLogger();

    static final String ALREADY_FILTERED_ATTRIBUTE = Log4jServletFilter.class.getName() + ".FILTERED";

    private ServletContext servletContext;
    private Log4jWebLifeCycle initializer;

    @Override
    public void init(final FilterConfig filterConfig) throws ServletException {
        this.servletContext = filterConfig.getServletContext();
        LOGGER.debug("Log4jServletFilter initialized.");

        this.initializer = WebLoggerContextUtils.getWebLifeCycle(this.servletContext);
        this.initializer.clearLoggerContext(); // the application is mostly finished starting up now
    }

    @Override
    public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain)
            throws IOException, ServletException {
        if (request.getAttribute(ALREADY_FILTERED_ATTRIBUTE) != null) {
            chain.doFilter(request, response);
        } else {
            request.setAttribute(ALREADY_FILTERED_ATTRIBUTE, Boolean.TRUE);

            try {
                this.initializer.setLoggerContext();

                chain.doFilter(request, response);
            } finally {
                this.initializer.clearLoggerContext();
                // Execute once per thread
                request.removeAttribute(ALREADY_FILTERED_ATTRIBUTE);
            }
        }
    }

    @Override
    public void destroy() {
        if (this.servletContext == null || this.initializer == null) {
            throw new IllegalStateException("Filter destroyed before it was initialized.");
        }
        LOGGER.debug("Log4jServletFilter destroyed.");

        this.initializer.setLoggerContext(); // the application is just now starting to shut down
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



