Class WebLoggerContextUtils

java.lang.Object
org.apache.logging.log4j.web.WebLoggerContextUtils

public final class WebLoggerContextUtils extends Object
Convenience methods for retrieving the LoggerContext associated with a particular ServletContext. These methods are most particularly useful for asynchronous servlets where the Thread Context ClassLoader (TCCL) is potentially different from the TCCL used by the Servlet container that bootstrapped Log4j.
Since:
2.0.1
  • Method Details

    • getWebLoggerContext

      public static LoggerContext getWebLoggerContext(jakarta.servlet.ServletContext servletContext)
      Finds the main LoggerContext configured for the given ServletContext.
      Parameters:
      servletContext - the ServletContext to locate a LoggerContext for
      Returns:
      the LoggerContext for the given ServletContext
      Since:
      2.0.1
    • getRequiredWebLoggerContext

      public static LoggerContext getRequiredWebLoggerContext(jakarta.servlet.ServletContext servletContext)
      Finds the main LoggerContext configured for the given ServletContext.
      Parameters:
      servletContext - the ServletContext to locate a LoggerContext for
      Returns:
      the LoggerContext for the given ServletContext or null if none was set
      Throws:
      IllegalStateException - if no LoggerContext could be found on the given ServletContext
      Since:
      2.0.1
    • getWebLifeCycle

      public static org.apache.logging.log4j.web.Log4jWebLifeCycle getWebLifeCycle(jakarta.servlet.ServletContext servletContext)
      Finds or initializes the Log4jWebLifeCycle singleton for the given ServletContext.
      Parameters:
      servletContext - the ServletContext to get the Log4jWebLifeCycle for
      Returns:
      the Log4jWebLifeCycle for the given ServletContext
      Since:
      2.0.1
    • wrapExecutionContext

      public static Runnable wrapExecutionContext(jakarta.servlet.ServletContext servletContext, Runnable runnable)
      Wraps a Runnable instance by setting its thread context LoggerContext before execution and clearing it after execution.
      Parameters:
      servletContext - the ServletContext to locate a LoggerContext for
      runnable - the Runnable to wrap execution for
      Returns:
      a wrapped Runnable
      Since:
      2.0.1
    • createExternalEntry

      public static Map.Entry<String,Object> createExternalEntry(jakarta.servlet.ServletContext servletContext)
    • setServletContext

      public static void setServletContext(LoggerContext lc, jakarta.servlet.ServletContext servletContext)
    • getServletContext

      public static jakarta.servlet.ServletContext getServletContext()
      Gets the current ServletContext if it has already been assigned to a LoggerContext's external context.
      Returns:
      the current ServletContext attached to a LoggerContext or null if none could be found
      Since:
      2.1