blob: 44bf2df4ed644642309d031e5831e4c94ede3ed7 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ClassLoaderContextSelector (Apache Log4j Core 2.23.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.logging.log4j.core.selector, class: ClassLoaderContextSelector">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ClassLoaderContextSelector.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.logging.log4j.core.selector</a></div>
<h1 title="Class ClassLoaderContextSelector" class="title">Class ClassLoaderContextSelector</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.logging.log4j.core.selector.ClassLoaderContextSelector</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="ContextSelector.html" title="interface in org.apache.logging.log4j.core.selector">ContextSelector</a></code>, <code><a href="https://logging.apache.org/log4j/2.x/apidocs/org/apache/logging/log4j/spi/LoggerContextShutdownAware.html" title="class or interface in org.apache.logging.log4j.spi" class="external-link">LoggerContextShutdownAware</a></code></dd>
</dl>
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="../async/AsyncLoggerContextSelector.html" title="class in org.apache.logging.log4j.core.async">AsyncLoggerContextSelector</a></code>, <code><a href="../osgi/BundleContextSelector.html" title="class in org.apache.logging.log4j.core.osgi">BundleContextSelector</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">ClassLoaderContextSelector</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements <a href="ContextSelector.html" title="interface in org.apache.logging.log4j.core.selector">ContextSelector</a>, <a href="https://logging.apache.org/log4j/2.x/apidocs/org/apache/logging/log4j/spi/LoggerContextShutdownAware.html" title="class or interface in org.apache.logging.log4j.spi" class="external-link">LoggerContextShutdownAware</a></span></div>
<div class="block">This ContextSelector chooses a LoggerContext based upon the ClassLoader of the caller. This allows Loggers assigned
to static variables to be released along with the classes that own then. Other ContextSelectors will generally cause
Loggers associated with classes loaded from different ClassLoaders to be co-mingled. This is a problem if, for
example, a web application is undeployed as some of the Loggers being released may be associated with a Class in a
parent ClassLoader, which will generally have negative consequences.
The main downside to this ContextSelector is that Configuration is more challenging.
This ContextSelector should not be used with a Servlet Filter such as the Log4jServletFilter.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected static final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html" title="class or interface in java.util.concurrent" class="external-link">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html" title="class or interface in java.util.concurrent.atomic" class="external-link">AtomicReference</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ref/WeakReference.html" title="class or interface in java.lang.ref" class="external-link">WeakReference</a>&lt;<a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a>&gt;&gt;&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#CONTEXT_MAP" class="member-name-link">CONTEXT_MAP</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>protected static final <a href="https://logging.apache.org/log4j/2.x/apidocs/org/apache/logging/log4j/status/StatusLogger.html" title="class or interface in org.apache.logging.log4j.status" class="external-link">StatusLogger</a></code></div>
<div class="col-second odd-row-color"><code><a href="#LOGGER" class="member-name-link">LOGGER</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-org.apache.logging.log4j.core.selector.ContextSelector">Fields inherited from interface&nbsp;org.apache.logging.log4j.core.selector.<a href="ContextSelector.html" title="interface in org.apache.logging.log4j.core.selector">ContextSelector</a></h3>
<code><a href="ContextSelector.html#DEFAULT_STOP_TIMEOUT">DEFAULT_STOP_TIMEOUT</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">ClassLoaderContextSelector</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#contextShutdown(org.apache.logging.log4j.spi.LoggerContext)" class="member-name-link">contextShutdown</a><wbr>(<a href="https://logging.apache.org/log4j/2.x/apidocs/org/apache/logging/log4j/spi/LoggerContext.html" title="class or interface in org.apache.logging.log4j.spi" class="external-link">LoggerContext</a>&nbsp;loggerContext)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createContext(java.lang.String,java.net.URI)" class="member-name-link">createContext</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html" title="class or interface in java.net" class="external-link">URI</a>&nbsp;configLocation)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#defaultContextName()" class="member-name-link">defaultContextName</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getContext(java.lang.String,java.lang.ClassLoader,boolean)" class="member-name-link">getContext</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;fqcn,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link">ClassLoader</a>&nbsp;loader,
boolean&nbsp;currentContext)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the LoggerContext.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getContext(java.lang.String,java.lang.ClassLoader,boolean,java.net.URI)" class="member-name-link">getContext</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;fqcn,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link">ClassLoader</a>&nbsp;loader,
boolean&nbsp;currentContext,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html" title="class or interface in java.net" class="external-link">URI</a>&nbsp;configLocation)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the LoggerContext.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getContext(java.lang.String,java.lang.ClassLoader,java.util.Map.Entry,boolean,java.net.URI)" class="member-name-link">getContext</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;fqcn,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link">ClassLoader</a>&nbsp;loader,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html" title="class or interface in java.util" class="external-link">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&gt;&nbsp;entry,
boolean&nbsp;currentContext,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html" title="class or interface in java.net" class="external-link">URI</a>&nbsp;configLocation)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the LoggerContext.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getDefault()" class="member-name-link">getDefault</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getLoggerContexts()" class="member-name-link">getLoggerContexts</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a List of all the available LoggerContexts.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hasContext(java.lang.String,java.lang.ClassLoader,boolean)" class="member-name-link">hasContext</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;fqcn,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link">ClassLoader</a>&nbsp;loader,
boolean&nbsp;currentContext)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks to see if a LoggerContext is installed.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isClassLoaderDependent()" class="member-name-link">isClassLoaderDependent</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Determines whether or not this ContextSelector depends on the callers classloader.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#removeContext(org.apache.logging.log4j.core.LoggerContext)" class="member-name-link">removeContext</a><wbr>(<a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a>&nbsp;context)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Remove any references to the LoggerContext.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#shutdown(java.lang.String,java.lang.ClassLoader,boolean,boolean)" class="member-name-link">shutdown</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;fqcn,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link">ClassLoader</a>&nbsp;loader,
boolean&nbsp;currentContext,
boolean&nbsp;allContexts)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Shuts down the LoggerContext.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toContextMapKey(java.lang.ClassLoader)" class="member-name-link">toContextMapKey</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link">ClassLoader</a>&nbsp;loader)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-" title="class or interface in java.lang" class="external-link">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.logging.log4j.core.selector.ContextSelector">Methods inherited from interface&nbsp;org.apache.logging.log4j.core.selector.<a href="ContextSelector.html" title="interface in org.apache.logging.log4j.core.selector">ContextSelector</a></h3>
<code><a href="ContextSelector.html#getContext(java.lang.String,java.lang.ClassLoader,java.util.Map.Entry,boolean)">getContext</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="LOGGER">
<h3>LOGGER</h3>
<div class="member-signature"><span class="modifiers">protected static final</span>&nbsp;<span class="return-type"><a href="https://logging.apache.org/log4j/2.x/apidocs/org/apache/logging/log4j/status/StatusLogger.html" title="class or interface in org.apache.logging.log4j.status" class="external-link">StatusLogger</a></span>&nbsp;<span class="element-name">LOGGER</span></div>
</section>
</li>
<li>
<section class="detail" id="CONTEXT_MAP">
<h3>CONTEXT_MAP</h3>
<div class="member-signature"><span class="modifiers">protected static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html" title="class or interface in java.util.concurrent" class="external-link">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html" title="class or interface in java.util.concurrent.atomic" class="external-link">AtomicReference</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ref/WeakReference.html" title="class or interface in java.lang.ref" class="external-link">WeakReference</a>&lt;<a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a>&gt;&gt;&gt;</span>&nbsp;<span class="element-name">CONTEXT_MAP</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>ClassLoaderContextSelector</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ClassLoaderContextSelector</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="shutdown(java.lang.String,java.lang.ClassLoader,boolean,boolean)">
<h3>shutdown</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">shutdown</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;fqcn,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link">ClassLoader</a>&nbsp;loader,
boolean&nbsp;currentContext,
boolean&nbsp;allContexts)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ContextSelector.html#shutdown(java.lang.String,java.lang.ClassLoader,boolean,boolean)">ContextSelector</a></code></span></div>
<div class="block">Shuts down the LoggerContext.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ContextSelector.html#shutdown(java.lang.String,java.lang.ClassLoader,boolean,boolean)">shutdown</a></code>&nbsp;in interface&nbsp;<code><a href="ContextSelector.html" title="interface in org.apache.logging.log4j.core.selector">ContextSelector</a></code></dd>
<dt>Parameters:</dt>
<dd><code>fqcn</code> - The fully qualified class name of the caller.</dd>
<dd><code>loader</code> - The ClassLoader to use or null.</dd>
<dd><code>currentContext</code> - If true returns the current Context, if false returns the Context appropriate</dd>
<dd><code>allContexts</code> - if true all LoggerContexts that can be located will be shutdown.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="contextShutdown(org.apache.logging.log4j.spi.LoggerContext)">
<h3>contextShutdown</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">contextShutdown</span><wbr><span class="parameters">(<a href="https://logging.apache.org/log4j/2.x/apidocs/org/apache/logging/log4j/spi/LoggerContext.html" title="class or interface in org.apache.logging.log4j.spi" class="external-link">LoggerContext</a>&nbsp;loggerContext)</span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://logging.apache.org/log4j/2.x/apidocs/org/apache/logging/log4j/spi/LoggerContextShutdownAware.html#contextShutdown(org.apache.logging.log4j.spi.LoggerContext)" title="class or interface in org.apache.logging.log4j.spi" class="external-link">contextShutdown</a></code>&nbsp;in interface&nbsp;<code><a href="https://logging.apache.org/log4j/2.x/apidocs/org/apache/logging/log4j/spi/LoggerContextShutdownAware.html" title="class or interface in org.apache.logging.log4j.spi" class="external-link">LoggerContextShutdownAware</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="hasContext(java.lang.String,java.lang.ClassLoader,boolean)">
<h3>hasContext</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">hasContext</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;fqcn,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link">ClassLoader</a>&nbsp;loader,
boolean&nbsp;currentContext)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ContextSelector.html#hasContext(java.lang.String,java.lang.ClassLoader,boolean)">ContextSelector</a></code></span></div>
<div class="block">Checks to see if a LoggerContext is installed. The default implementation returns false.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ContextSelector.html#hasContext(java.lang.String,java.lang.ClassLoader,boolean)">hasContext</a></code>&nbsp;in interface&nbsp;<code><a href="ContextSelector.html" title="interface in org.apache.logging.log4j.core.selector">ContextSelector</a></code></dd>
<dt>Parameters:</dt>
<dd><code>fqcn</code> - The fully qualified class name of the caller.</dd>
<dd><code>loader</code> - The ClassLoader to use or null.</dd>
<dd><code>currentContext</code> - If true returns the current Context, if false returns the Context appropriate
for the caller if a more appropriate Context can be determined.</dd>
<dt>Returns:</dt>
<dd>true if a LoggerContext has been installed, false otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getContext(java.lang.String,java.lang.ClassLoader,boolean)">
<h3>getContext</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a></span>&nbsp;<span class="element-name">getContext</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;fqcn,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link">ClassLoader</a>&nbsp;loader,
boolean&nbsp;currentContext)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ContextSelector.html#getContext(java.lang.String,java.lang.ClassLoader,boolean)">ContextSelector</a></code></span></div>
<div class="block">Returns the LoggerContext.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ContextSelector.html#getContext(java.lang.String,java.lang.ClassLoader,boolean)">getContext</a></code>&nbsp;in interface&nbsp;<code><a href="ContextSelector.html" title="interface in org.apache.logging.log4j.core.selector">ContextSelector</a></code></dd>
<dt>Parameters:</dt>
<dd><code>fqcn</code> - The fully qualified class name of the caller.</dd>
<dd><code>loader</code> - ClassLoader to use or null.</dd>
<dd><code>currentContext</code> - If true returns the current Context, if false returns the Context appropriate
for the caller if a more appropriate Context can be determined.</dd>
<dt>Returns:</dt>
<dd>The LoggerContext.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getContext(java.lang.String,java.lang.ClassLoader,boolean,java.net.URI)">
<h3>getContext</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a></span>&nbsp;<span class="element-name">getContext</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;fqcn,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link">ClassLoader</a>&nbsp;loader,
boolean&nbsp;currentContext,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html" title="class or interface in java.net" class="external-link">URI</a>&nbsp;configLocation)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ContextSelector.html#getContext(java.lang.String,java.lang.ClassLoader,boolean,java.net.URI)">ContextSelector</a></code></span></div>
<div class="block">Returns the LoggerContext.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ContextSelector.html#getContext(java.lang.String,java.lang.ClassLoader,boolean,java.net.URI)">getContext</a></code>&nbsp;in interface&nbsp;<code><a href="ContextSelector.html" title="interface in org.apache.logging.log4j.core.selector">ContextSelector</a></code></dd>
<dt>Parameters:</dt>
<dd><code>fqcn</code> - The fully qualified class name of the caller.</dd>
<dd><code>loader</code> - ClassLoader to use or null.</dd>
<dd><code>currentContext</code> - If true returns the current Context, if false returns the Context appropriate
for the caller if a more appropriate Context can be determined.</dd>
<dd><code>configLocation</code> - The location of the configuration for the LoggerContext.</dd>
<dt>Returns:</dt>
<dd>The LoggerContext.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getContext(java.lang.String,java.lang.ClassLoader,java.util.Map.Entry,boolean,java.net.URI)">
<h3>getContext</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a></span>&nbsp;<span class="element-name">getContext</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;fqcn,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link">ClassLoader</a>&nbsp;loader,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html" title="class or interface in java.util" class="external-link">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&gt;&nbsp;entry,
boolean&nbsp;currentContext,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html" title="class or interface in java.net" class="external-link">URI</a>&nbsp;configLocation)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ContextSelector.html#getContext(java.lang.String,java.lang.ClassLoader,java.util.Map.Entry,boolean,java.net.URI)">ContextSelector</a></code></span></div>
<div class="block">Returns the LoggerContext.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ContextSelector.html#getContext(java.lang.String,java.lang.ClassLoader,java.util.Map.Entry,boolean,java.net.URI)">getContext</a></code>&nbsp;in interface&nbsp;<code><a href="ContextSelector.html" title="interface in org.apache.logging.log4j.core.selector">ContextSelector</a></code></dd>
<dt>Parameters:</dt>
<dd><code>fqcn</code> - The fully qualified class name of the caller.</dd>
<dd><code>loader</code> - ClassLoader to use or null.</dd>
<dd><code>currentContext</code> - If true returns the current Context, if false returns the Context appropriate
for the caller if a more appropriate Context can be determined.</dd>
<dd><code>configLocation</code> - The location of the configuration for the LoggerContext.</dd>
<dt>Returns:</dt>
<dd>The LoggerContext.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="removeContext(org.apache.logging.log4j.core.LoggerContext)">
<h3>removeContext</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">removeContext</span><wbr><span class="parameters">(<a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a>&nbsp;context)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ContextSelector.html#removeContext(org.apache.logging.log4j.core.LoggerContext)">ContextSelector</a></code></span></div>
<div class="block">Remove any references to the LoggerContext.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ContextSelector.html#removeContext(org.apache.logging.log4j.core.LoggerContext)">removeContext</a></code>&nbsp;in interface&nbsp;<code><a href="ContextSelector.html" title="interface in org.apache.logging.log4j.core.selector">ContextSelector</a></code></dd>
<dt>Parameters:</dt>
<dd><code>context</code> - The context to remove.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isClassLoaderDependent()">
<h3>isClassLoaderDependent</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isClassLoaderDependent</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ContextSelector.html#isClassLoaderDependent()">ContextSelector</a></code></span></div>
<div class="block">Determines whether or not this ContextSelector depends on the callers classloader.
This method should be overridden by implementations, however a default method is provided which always
returns <code>true</code> to preserve the old behavior.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ContextSelector.html#isClassLoaderDependent()">isClassLoaderDependent</a></code>&nbsp;in interface&nbsp;<code><a href="ContextSelector.html" title="interface in org.apache.logging.log4j.core.selector">ContextSelector</a></code></dd>
<dt>Returns:</dt>
<dd>true if the class loader is required.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getLoggerContexts()">
<h3>getLoggerContexts</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a>&gt;</span>&nbsp;<span class="element-name">getLoggerContexts</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ContextSelector.html#getLoggerContexts()">ContextSelector</a></code></span></div>
<div class="block">Returns a List of all the available LoggerContexts.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ContextSelector.html#getLoggerContexts()">getLoggerContexts</a></code>&nbsp;in interface&nbsp;<code><a href="ContextSelector.html" title="interface in org.apache.logging.log4j.core.selector">ContextSelector</a></code></dd>
<dt>Returns:</dt>
<dd>The List of LoggerContexts.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createContext(java.lang.String,java.net.URI)">
<h3>createContext</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a></span>&nbsp;<span class="element-name">createContext</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html" title="class or interface in java.net" class="external-link">URI</a>&nbsp;configLocation)</span></div>
</section>
</li>
<li>
<section class="detail" id="toContextMapKey(java.lang.ClassLoader)">
<h3>toContextMapKey</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toContextMapKey</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link">ClassLoader</a>&nbsp;loader)</span></div>
</section>
</li>
<li>
<section class="detail" id="getDefault()">
<h3>getDefault</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="../LoggerContext.html" title="class in org.apache.logging.log4j.core">LoggerContext</a></span>&nbsp;<span class="element-name">getDefault</span>()</div>
</section>
</li>
<li>
<section class="detail" id="defaultContextName()">
<h3>defaultContextName</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">defaultContextName</span>()</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small><p align="center"> Copyright &copy; 1999-2024 <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>
</footer>
</div>
</div>
</body>
</html>