Package org.apache.logging.log4j.web
Class WebLoggerContextUtils
java.lang.Object
org.apache.logging.log4j.web.WebLoggerContextUtils
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 Summary
Modifier and TypeMethodDescriptioncreateExternalEntry
(jakarta.servlet.ServletContext servletContext) static LoggerContext
getRequiredWebLoggerContext
(jakarta.servlet.ServletContext servletContext) Finds the mainLoggerContext
configured for the given ServletContext.static jakarta.servlet.ServletContext
Gets the currentServletContext
if it has already been assigned to a LoggerContext's external context.static org.apache.logging.log4j.web.Log4jWebLifeCycle
getWebLifeCycle
(jakarta.servlet.ServletContext servletContext) Finds or initializes theLog4jWebLifeCycle
singleton for the given ServletContext.static LoggerContext
getWebLoggerContext
(jakarta.servlet.ServletContext servletContext) Finds the mainLoggerContext
configured for the given ServletContext.static void
setServletContext
(LoggerContext lc, jakarta.servlet.ServletContext servletContext) static Runnable
wrapExecutionContext
(jakarta.servlet.ServletContext servletContext, Runnable runnable) Wraps a Runnable instance by setting its thread contextLoggerContext
before execution and clearing it after execution.
-
Method Details
-
getWebLoggerContext
Finds the mainLoggerContext
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 mainLoggerContext
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 theLog4jWebLifeCycle
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 contextLoggerContext
before execution and clearing it after execution.- Parameters:
servletContext
- the ServletContext to locate a LoggerContext forrunnable
- the Runnable to wrap execution for- Returns:
- a wrapped Runnable
- Since:
- 2.0.1
-
createExternalEntry
-
setServletContext
public static void setServletContext(LoggerContext lc, jakarta.servlet.ServletContext servletContext) -
getServletContext
public static jakarta.servlet.ServletContext getServletContext()Gets the currentServletContext
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
-