<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_144) on Wed Dec 11 21:15:15 MST 2019 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Index (Apache Log4j Web 2.13.0 API)</title>
<meta name="date" content="2019-12-11">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Index (Apache Log4j Web 2.13.0 API)";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a name="I:A">
<!--   -->
</a>
<h2 class="title">A</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/appender/ServletAppender.html#append-org.apache.logging.log4j.core.LogEvent-">append(LogEvent)</a></span> - Method in class org.apache.logging.log4j.web.appender.<a href="org/apache/logging/log4j/web/appender/ServletAppender.html" title="class in org.apache.logging.log4j.web.appender">ServletAppender</a></dt>
<dd>&nbsp;</dd>
</dl>
<a name="I:B">
<!--   -->
</a>
<h2 class="title">B</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/appender/ServletAppender.Builder.html#build--">build()</a></span> - Method in class org.apache.logging.log4j.web.appender.<a href="org/apache/logging/log4j/web/appender/ServletAppender.Builder.html" title="class in org.apache.logging.log4j.web.appender">ServletAppender.Builder</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/appender/ServletAppender.Builder.html#Builder--">Builder()</a></span> - Constructor for class org.apache.logging.log4j.web.appender.<a href="org/apache/logging/log4j/web/appender/ServletAppender.Builder.html" title="class in org.apache.logging.log4j.web.appender">ServletAppender.Builder</a></dt>
<dd>&nbsp;</dd>
</dl>
<a name="I:C">
<!--   -->
</a>
<h2 class="title">C</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jWebSupport.html#clearLoggerContext--">clearLoggerContext()</a></span> - Method in interface org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jWebSupport.html" title="interface in org.apache.logging.log4j.web">Log4jWebSupport</a></dt>
<dd>
<div class="block">Clears the logger context set up in <a href="org/apache/logging/log4j/web/Log4jWebSupport.html#setLoggerContext--"><code>Log4jWebSupport.setLoggerContext()</code></a>.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jWebSupport.html#CONTEXT_ATTRIBUTE">CONTEXT_ATTRIBUTE</a></span> - Static variable in interface org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jWebSupport.html" title="interface in org.apache.logging.log4j.web">Log4jWebSupport</a></dt>
<dd>
<div class="block">The attribute key for the <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html?is-external=true" title="class or interface in javax.servlet"><code>ServletContext</code></a> attribute that the <code>LoggerContext</code>
 is stored in.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jServletContextListener.html#contextDestroyed-javax.servlet.ServletContextEvent-">contextDestroyed(ServletContextEvent)</a></span> - Method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jServletContextListener.html" title="class in org.apache.logging.log4j.web">Log4jServletContextListener</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jServletContextListener.html#contextInitialized-javax.servlet.ServletContextEvent-">contextInitialized(ServletContextEvent)</a></span> - Method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jServletContextListener.html" title="class in org.apache.logging.log4j.web">Log4jServletContextListener</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/appender/ServletAppender.html#createAppender-org.apache.logging.log4j.core.Layout-org.apache.logging.log4j.core.Filter-java.lang.String-boolean-">createAppender(Layout&lt;? extends Serializable&gt;, Filter, String, boolean)</a></span> - Static method in class org.apache.logging.log4j.web.appender.<a href="org/apache/logging/log4j/web/appender/ServletAppender.html" title="class in org.apache.logging.log4j.web.appender">ServletAppender</a></dt>
<dd>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/logging/log4j/web/appender/ServletAppender.html#newBuilder--"><code>ServletAppender.newBuilder()</code></a>.</span></div>
</div>
</dd>
</dl>
<a name="I:D">
<!--   -->
</a>
<h2 class="title">D</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jServletFilter.html#destroy--">destroy()</a></span> - Method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jServletFilter.html" title="class in org.apache.logging.log4j.web">Log4jServletFilter</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jServletFilter.html#doFilter-javax.servlet.ServletRequest-javax.servlet.ServletResponse-javax.servlet.FilterChain-">doFilter(ServletRequest, ServletResponse, FilterChain)</a></span> - Method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jServletFilter.html" title="class in org.apache.logging.log4j.web">Log4jServletFilter</a></dt>
<dd>&nbsp;</dd>
</dl>
<a name="I:G">
<!--   -->
</a>
<h2 class="title">G</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/WebLoggerContextUtils.html#getRequiredWebLoggerContext-javax.servlet.ServletContext-">getRequiredWebLoggerContext(ServletContext)</a></span> - Static method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/WebLoggerContextUtils.html" title="class in org.apache.logging.log4j.web">WebLoggerContextUtils</a></dt>
<dd>
<div class="block">Finds the main <code>LoggerContext</code> configured for the given ServletContext.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/WebLoggerContextUtils.html#getServletContext--">getServletContext()</a></span> - Static method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/WebLoggerContextUtils.html" title="class in org.apache.logging.log4j.web">WebLoggerContextUtils</a></dt>
<dd>
<div class="block">Gets the current <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html?is-external=true" title="class or interface in javax.servlet"><code>ServletContext</code></a> if it has already been assigned to a LoggerContext's external context.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/WebLoggerContextUtils.html#getWebLifeCycle-javax.servlet.ServletContext-">getWebLifeCycle(ServletContext)</a></span> - Static method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/WebLoggerContextUtils.html" title="class in org.apache.logging.log4j.web">WebLoggerContextUtils</a></dt>
<dd>
<div class="block">Finds or initializes the <code>Log4jWebLifeCycle</code> singleton for the given
 ServletContext.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/WebLoggerContextUtils.html#getWebLoggerContext-javax.servlet.ServletContext-">getWebLoggerContext(ServletContext)</a></span> - Static method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/WebLoggerContextUtils.html" title="class in org.apache.logging.log4j.web">WebLoggerContextUtils</a></dt>
<dd>
<div class="block">Finds the main <code>LoggerContext</code> configured for the given ServletContext.</div>
</dd>
</dl>
<a name="I:I">
<!--   -->
</a>
<h2 class="title">I</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jServletFilter.html#init-javax.servlet.FilterConfig-">init(FilterConfig)</a></span> - Method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jServletFilter.html" title="class in org.apache.logging.log4j.web">Log4jServletFilter</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jWebSupport.html#IS_LOG4J_AUTO_INITIALIZATION_DISABLED">IS_LOG4J_AUTO_INITIALIZATION_DISABLED</a></span> - Static variable in interface org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jWebSupport.html" title="interface in org.apache.logging.log4j.web">Log4jWebSupport</a></dt>
<dd>
<div class="block">The <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html?is-external=true" title="class or interface in javax.servlet"><code>ServletContext</code></a> parameter name for the flag that disables Log4j's auto-initialization
 in Servlet 3.0+ web applications.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jWebSupport.html#IS_LOG4J_CONTEXT_SELECTOR_NAMED">IS_LOG4J_CONTEXT_SELECTOR_NAMED</a></span> - Static variable in interface org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jWebSupport.html" title="interface in org.apache.logging.log4j.web">Log4jWebSupport</a></dt>
<dd>
<div class="block">The <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html?is-external=true" title="class or interface in javax.servlet"><code>ServletContext</code></a> parameter name for the JNDI flag.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/appender/ServletAppender.Builder.html#isLogThrowables--">isLogThrowables()</a></span> - Method in class org.apache.logging.log4j.web.appender.<a href="org/apache/logging/log4j/web/appender/ServletAppender.Builder.html" title="class in org.apache.logging.log4j.web.appender">ServletAppender.Builder</a></dt>
<dd>
<div class="block">Logs with <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html?is-external=true#log-java.lang.String-java.lang.Throwable-" title="class or interface in javax.servlet"><code>ServletContext.log(String, Throwable)</code></a> if true and with <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html?is-external=true#log-java.lang.String-" title="class or interface in javax.servlet"><code>ServletContext.log(String)</code></a> if false.</div>
</dd>
</dl>
<a name="I:L">
<!--   -->
</a>
<h2 class="title">L</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jWebSupport.html#LOG4J_CONFIG_LOCATION">LOG4J_CONFIG_LOCATION</a></span> - Static variable in interface org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jWebSupport.html" title="interface in org.apache.logging.log4j.web">Log4jWebSupport</a></dt>
<dd>
<div class="block">The <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html?is-external=true" title="class or interface in javax.servlet"><code>ServletContext</code></a> parameter name for the location of the configuration.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jWebSupport.html#LOG4J_CONTEXT_NAME">LOG4J_CONTEXT_NAME</a></span> - Static variable in interface org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jWebSupport.html" title="interface in org.apache.logging.log4j.web">Log4jWebSupport</a></dt>
<dd>
<div class="block">The <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html?is-external=true" title="class or interface in javax.servlet"><code>ServletContext</code></a> parameter name for the name of the
 <code>LoggerContext</code>.</div>
</dd>
<dt><a href="org/apache/logging/log4j/web/Log4jServletContainerInitializer.html" title="class in org.apache.logging.log4j.web"><span class="typeNameLink">Log4jServletContainerInitializer</span></a> - Class in <a href="org/apache/logging/log4j/web/package-summary.html">org.apache.logging.log4j.web</a></dt>
<dd>
<div class="block">In a Servlet 3.0 or newer environment, this initializer is responsible for starting up Log4j logging before anything
 else happens in application initialization.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jServletContainerInitializer.html#Log4jServletContainerInitializer--">Log4jServletContainerInitializer()</a></span> - Constructor for class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jServletContainerInitializer.html" title="class in org.apache.logging.log4j.web">Log4jServletContainerInitializer</a></dt>
<dd>&nbsp;</dd>
<dt><a href="org/apache/logging/log4j/web/Log4jServletContextListener.html" title="class in org.apache.logging.log4j.web"><span class="typeNameLink">Log4jServletContextListener</span></a> - Class in <a href="org/apache/logging/log4j/web/package-summary.html">org.apache.logging.log4j.web</a></dt>
<dd>
<div class="block">In environments older than Servlet 3.0, this initializer is responsible for starting up Log4j logging before anything
 else happens in application initialization.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jServletContextListener.html#Log4jServletContextListener--">Log4jServletContextListener()</a></span> - Constructor for class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jServletContextListener.html" title="class in org.apache.logging.log4j.web">Log4jServletContextListener</a></dt>
<dd>&nbsp;</dd>
<dt><a href="org/apache/logging/log4j/web/Log4jServletFilter.html" title="class in org.apache.logging.log4j.web"><span class="typeNameLink">Log4jServletFilter</span></a> - Class in <a href="org/apache/logging/log4j/web/package-summary.html">org.apache.logging.log4j.web</a></dt>
<dd>
<div class="block">This is responsible for the following:
 
     Clearing the logger context when the application has finished starting up.
     Setting the logger context before processing a request and clearing it after processing a request.
     Setting the logger context when the application is starting to shut down.
 
 This filter is a once-per-request filter.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jServletFilter.html#Log4jServletFilter--">Log4jServletFilter()</a></span> - Constructor for class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jServletFilter.html" title="class in org.apache.logging.log4j.web">Log4jServletFilter</a></dt>
<dd>&nbsp;</dd>
<dt><a href="org/apache/logging/log4j/web/Log4jWebSupport.html" title="interface in org.apache.logging.log4j.web"><span class="typeNameLink">Log4jWebSupport</span></a> - Interface in <a href="org/apache/logging/log4j/web/package-summary.html">org.apache.logging.log4j.web</a></dt>
<dd>
<div class="block">Specifies an interface for setting and clearing a thread-bound <code>LoggerContext</code> in a Java EE web application.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/WebLookup.html#lookup-org.apache.logging.log4j.core.LogEvent-java.lang.String-">lookup(LogEvent, String)</a></span> - Method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/WebLookup.html" title="class in org.apache.logging.log4j.web">WebLookup</a></dt>
<dd>&nbsp;</dd>
</dl>
<a name="I:N">
<!--   -->
</a>
<h2 class="title">N</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/appender/ServletAppender.html#newBuilder--">newBuilder()</a></span> - Static method in class org.apache.logging.log4j.web.appender.<a href="org/apache/logging/log4j/web/appender/ServletAppender.html" title="class in org.apache.logging.log4j.web.appender">ServletAppender</a></dt>
<dd>&nbsp;</dd>
</dl>
<a name="I:O">
<!--   -->
</a>
<h2 class="title">O</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jServletContainerInitializer.html#onStartup-java.util.Set-javax.servlet.ServletContext-">onStartup(Set&lt;Class&lt;?&gt;&gt;, ServletContext)</a></span> - Method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jServletContainerInitializer.html" title="class in org.apache.logging.log4j.web">Log4jServletContainerInitializer</a></dt>
<dd>&nbsp;</dd>
<dt><a href="org/apache/logging/log4j/web/package-summary.html">org.apache.logging.log4j.web</a> - package org.apache.logging.log4j.web</dt>
<dd>
<div class="block">The classes in this package are responsible for properly initializing and deinitializing Log4j in a Java EE web
 application.</div>
</dd>
<dt><a href="org/apache/logging/log4j/web/appender/package-summary.html">org.apache.logging.log4j.web.appender</a> - package org.apache.logging.log4j.web.appender</dt>
<dd>&nbsp;</dd>
</dl>
<a name="I:P">
<!--   -->
</a>
<h2 class="title">P</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/ServletRequestThreadContext.html#put-java.lang.String-javax.servlet.ServletRequest-">put(String, ServletRequest)</a></span> - Static method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/ServletRequestThreadContext.html" title="class in org.apache.logging.log4j.web">ServletRequestThreadContext</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/ServletRequestThreadContext.html#put-java.lang.String-java.lang.String-java.lang.Object-">put(String, String, Object)</a></span> - Static method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/ServletRequestThreadContext.html" title="class in org.apache.logging.log4j.web">ServletRequestThreadContext</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/ServletRequestThreadContext.html#put-java.lang.String-java.lang.String-">put(String, String)</a></span> - Static method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/ServletRequestThreadContext.html" title="class in org.apache.logging.log4j.web">ServletRequestThreadContext</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/ServletRequestThreadContext.html#put-java.lang.String-javax.servlet.http.HttpServletRequest-">put(String, HttpServletRequest)</a></span> - Static method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/ServletRequestThreadContext.html" title="class in org.apache.logging.log4j.web">ServletRequestThreadContext</a></dt>
<dd>&nbsp;</dd>
</dl>
<a name="I:S">
<!--   -->
</a>
<h2 class="title">S</h2>
<dl>
<dt><a href="org/apache/logging/log4j/web/appender/ServletAppender.html" title="class in org.apache.logging.log4j.web.appender"><span class="typeNameLink">ServletAppender</span></a> - Class in <a href="org/apache/logging/log4j/web/appender/package-summary.html">org.apache.logging.log4j.web.appender</a></dt>
<dd>
<div class="block">Logs using the ServletContext's log method</div>
</dd>
<dt><a href="org/apache/logging/log4j/web/appender/ServletAppender.Builder.html" title="class in org.apache.logging.log4j.web.appender"><span class="typeNameLink">ServletAppender.Builder</span></a>&lt;<a href="org/apache/logging/log4j/web/appender/ServletAppender.Builder.html" title="type parameter in ServletAppender.Builder">B</a> extends <a href="org/apache/logging/log4j/web/appender/ServletAppender.Builder.html" title="class in org.apache.logging.log4j.web.appender">ServletAppender.Builder</a>&lt;<a href="org/apache/logging/log4j/web/appender/ServletAppender.Builder.html" title="type parameter in ServletAppender.Builder">B</a>&gt;&gt; - Class in <a href="org/apache/logging/log4j/web/appender/package-summary.html">org.apache.logging.log4j.web.appender</a></dt>
<dd>&nbsp;</dd>
<dt><a href="org/apache/logging/log4j/web/ServletRequestThreadContext.html" title="class in org.apache.logging.log4j.web"><span class="typeNameLink">ServletRequestThreadContext</span></a> - Class in <a href="org/apache/logging/log4j/web/package-summary.html">org.apache.logging.log4j.web</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/ServletRequestThreadContext.html#ServletRequestThreadContext--">ServletRequestThreadContext()</a></span> - Constructor for class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/ServletRequestThreadContext.html" title="class in org.apache.logging.log4j.web">ServletRequestThreadContext</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jWebSupport.html#setLoggerContext--">setLoggerContext()</a></span> - Method in interface org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jWebSupport.html" title="interface in org.apache.logging.log4j.web">Log4jWebSupport</a></dt>
<dd>
<div class="block">Sets the logger context so that code executing afterwards can easily and quickly access loggers via
 <code>LogManager.getLogger()</code>.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/appender/ServletAppender.Builder.html#setLogThrowables-boolean-">setLogThrowables(boolean)</a></span> - Method in class org.apache.logging.log4j.web.appender.<a href="org/apache/logging/log4j/web/appender/ServletAppender.Builder.html" title="class in org.apache.logging.log4j.web.appender">ServletAppender.Builder</a></dt>
<dd>
<div class="block">Logs with <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html?is-external=true#log-java.lang.String-java.lang.Throwable-" title="class or interface in javax.servlet"><code>ServletContext.log(String, Throwable)</code></a> if true and with <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html?is-external=true#log-java.lang.String-" title="class or interface in javax.servlet"><code>ServletContext.log(String)</code></a> if false.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jWebSupport.html#SUPPORT_ATTRIBUTE">SUPPORT_ATTRIBUTE</a></span> - Static variable in interface org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jWebSupport.html" title="interface in org.apache.logging.log4j.web">Log4jWebSupport</a></dt>
<dd>
<div class="block">The attribute key for the <a href="https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html?is-external=true" title="class or interface in javax.servlet"><code>ServletContext</code></a> attribute that the singleton support instance
 is stored in.</div>
</dd>
</dl>
<a name="I:W">
<!--   -->
</a>
<h2 class="title">W</h2>
<dl>
<dt><a href="org/apache/logging/log4j/web/WebLoggerContextUtils.html" title="class in org.apache.logging.log4j.web"><span class="typeNameLink">WebLoggerContextUtils</span></a> - Class in <a href="org/apache/logging/log4j/web/package-summary.html">org.apache.logging.log4j.web</a></dt>
<dd>
<div class="block">Convenience methods for retrieving the <code>LoggerContext</code> associated with a
 particular ServletContext.</div>
</dd>
<dt><a href="org/apache/logging/log4j/web/WebLookup.html" title="class in org.apache.logging.log4j.web"><span class="typeNameLink">WebLookup</span></a> - Class in <a href="org/apache/logging/log4j/web/package-summary.html">org.apache.logging.log4j.web</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/WebLookup.html#WebLookup--">WebLookup()</a></span> - Constructor for class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/WebLookup.html" title="class in org.apache.logging.log4j.web">WebLookup</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/Log4jWebSupport.html#wrapExecution-java.lang.Runnable-">wrapExecution(Runnable)</a></span> - Method in interface org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/Log4jWebSupport.html" title="interface in org.apache.logging.log4j.web">Log4jWebSupport</a></dt>
<dd>
<div class="block">Sets the logger context by calling <a href="org/apache/logging/log4j/web/Log4jWebSupport.html#setLoggerContext--"><code>Log4jWebSupport.setLoggerContext()</code></a>, executes the runnable argument, then clears the
 logger context by calling <a href="org/apache/logging/log4j/web/Log4jWebSupport.html#clearLoggerContext--"><code>Log4jWebSupport.clearLoggerContext()</code></a>.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/logging/log4j/web/WebLoggerContextUtils.html#wrapExecutionContext-javax.servlet.ServletContext-java.lang.Runnable-">wrapExecutionContext(ServletContext, Runnable)</a></span> - Static method in class org.apache.logging.log4j.web.<a href="org/apache/logging/log4j/web/WebLoggerContextUtils.html" title="class in org.apache.logging.log4j.web">WebLoggerContextUtils</a></dt>
<dd>
<div class="block">Wraps a Runnable instance by setting its thread context <code>LoggerContext</code>
 before execution and clearing it after execution.</div>
</dd>
</dl>
<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:W">W</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><p align="center">Copyright &#169; 1999-2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.<br />             Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,             and the Apache Log4j logo are trademarks of The Apache Software Foundation.</p></small></p>
</body>
</html>
