| <!DOCTYPE HTML> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc (17) --> |
| <title>ThreadContext (Apache Log4j API 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, class: ThreadContext"> |
| <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/ThreadContext.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: </li> |
| <li><a href="#nested-class-summary">Nested</a> | </li> |
| <li><a href="#field-summary">Field</a> | </li> |
| <li>Constr | </li> |
| <li><a href="#method-summary">Method</a></li> |
| </ul> |
| <ul class="sub-nav-list"> |
| <li>Detail: </li> |
| <li><a href="#field-detail">Field</a> | </li> |
| <li>Constr | </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> <a href="package-summary.html">org.apache.logging.log4j</a></div> |
| <h1 title="Class ThreadContext" class="title">Class ThreadContext</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.ThreadContext</div> |
| </div> |
| <section class="class-description" id="class-description"> |
| <hr> |
| <div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">ThreadContext</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></span></div> |
| <div class="block">The ThreadContext allows applications to store information either in a Map or a Stack. |
| <p> |
| <b><em>The MDC is managed on a per thread basis</em></b>. To enable automatic inheritance of <i>copies</i> of the MDC |
| to newly created threads, enable the <a href="spi/DefaultThreadContextMap.html#INHERITABLE_MAP">"isThreadContextMapInheritable"</a> |
| Log4j system property. |
| </p></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="https://logging.apache.org/log4j/2.x/manual/thread-context.html">Thread Context Manual</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| <section class="summary"> |
| <ul class="summary-list"> |
| <!-- ======== NESTED CLASS SUMMARY ======== --> |
| <li> |
| <section class="nested-class-summary" id="nested-class-summary"> |
| <h2>Nested Class Summary</h2> |
| <div class="caption"><span>Nested Classes</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">Class</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color"><code>static interface </code></div> |
| <div class="col-second even-row-color"><code><a href="ThreadContext.ContextStack.html" class="type-name-link" title="interface in org.apache.logging.log4j">ThreadContext.ContextStack</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">The ThreadContext Stack interface.</div> |
| </div> |
| </div> |
| </section> |
| </li> |
| <!-- =========== 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>static final <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<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/String.html" title="class or interface in java.lang" class="external-link">String</a>></code></div> |
| <div class="col-second even-row-color"><code><a href="#EMPTY_MAP" class="member-name-link">EMPTY_MAP</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Empty, immutable Map.</div> |
| </div> |
| <div class="col-first odd-row-color"><code>static final <a href="spi/ThreadContextStack.html" title="interface in org.apache.logging.log4j.spi">ThreadContextStack</a></code></div> |
| <div class="col-second odd-row-color"><code><a href="#EMPTY_STACK" class="member-name-link">EMPTY_STACK</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Empty, immutable ContextStack.</div> |
| </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-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static 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-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#clearAll()" class="member-name-link">clearAll</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Clears the context map and stack.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#clearMap()" class="member-name-link">clearMap</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Clears the context map.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#clearStack()" class="member-name-link">clearStack</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Clears the stack for this thread.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="ThreadContext.ContextStack.html" title="interface in org.apache.logging.log4j">ThreadContext.ContextStack</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#cloneStack()" class="member-name-link">cloneStack</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Returns a copy of this thread's stack.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static boolean</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#containsKey(java.lang.String)" class="member-name-link">containsKey</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> key)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Determines if the key is in the context.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <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 odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#get(java.lang.String)" class="member-name-link">get</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> key)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Gets the context value identified by the <code>key</code> parameter.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<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/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-tab1 method-summary-table-tab4"><code><a href="#getContext()" class="member-name-link">getContext</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Returns a mutable copy of current thread's context Map.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static int</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getDepth()" class="member-name-link">getDepth</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Gets the current nesting depth of this thread's stack.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<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/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-tab1 method-summary-table-tab4"><code><a href="#getImmutableContext()" class="member-name-link">getImmutableContext</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Returns an immutable view of the current thread's context Map.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="ThreadContext.ContextStack.html" title="interface in org.apache.logging.log4j">ThreadContext.ContextStack</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getImmutableStack()" class="member-name-link">getImmutableStack</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Gets an immutable copy of this current thread's context stack.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="spi/ReadOnlyThreadContextMap.html" title="interface in org.apache.logging.log4j.spi">ReadOnlyThreadContextMap</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getThreadContextMap()" class="member-name-link">getThreadContextMap</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Returns a read-only view of the internal data structure used to store thread context key-value pairs, |
| or <code>null</code> if the internal data structure does not implement the |
| <code>ReadOnlyThreadContextMap</code> interface.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#init()" class="member-name-link">init</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block"><em>Consider private, used for testing.</em></div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static boolean</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#isEmpty()" class="member-name-link">isEmpty</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Returns true if the Map is empty.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <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 odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#peek()" class="member-name-link">peek</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Looks at the last diagnostic context at the top of this NDC without removing it.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <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-tab1 method-summary-table-tab4"><code><a href="#pop()" class="member-name-link">pop</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Returns the value of the last item placed on the stack.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#push(java.lang.String)" class="member-name-link">push</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> message)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Pushes new diagnostic context information for the current thread.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#push(java.lang.String,java.lang.Object...)" class="member-name-link">push</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> message, |
| <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>... args)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Pushes new diagnostic context information for the current thread.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#put(java.lang.String,java.lang.String)" class="member-name-link">put</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> key, |
| <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> value)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Puts a context value (the <code>value</code> parameter) as identified with the <code>key</code> parameter into |
| the current thread's context map.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#putAll(java.util.Map)" class="member-name-link">putAll</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<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/String.html" title="class or interface in java.lang" class="external-link">String</a>> m)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Puts all given context map entries into the current thread's |
| context map.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#putIfNull(java.lang.String,java.lang.String)" class="member-name-link">putIfNull</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> key, |
| <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> value)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Puts a context value (the <code>value</code> parameter) as identified with the <code>key</code> parameter into |
| the current thread's context map if the key does not exist.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#remove(java.lang.String)" class="member-name-link">remove</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> key)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Removes the context value identified by the <code>key</code> parameter.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#removeAll(java.lang.Iterable)" class="member-name-link">removeAll</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a><<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>> keys)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Removes the context values identified by the <code>keys</code> parameter.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#removeStack()" class="member-name-link">removeStack</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Removes the diagnostic context for this thread.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#setStack(java.util.Collection)" class="member-name-link">setStack</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a><<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>> stack)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Sets this thread's stack.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#trim(int)" class="member-name-link">trim</a><wbr>(int depth)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Trims elements from this diagnostic context.</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class 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> |
| </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="EMPTY_MAP"> |
| <h3>EMPTY_MAP</h3> |
| <div class="member-signature"><span class="modifiers">public static final</span> <span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<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/String.html" title="class or interface in java.lang" class="external-link">String</a>></span> <span class="element-name">EMPTY_MAP</span></div> |
| <div class="block">Empty, immutable Map.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="EMPTY_STACK"> |
| <h3>EMPTY_STACK</h3> |
| <div class="member-signature"><span class="modifiers">public static final</span> <span class="return-type"><a href="spi/ThreadContextStack.html" title="interface in org.apache.logging.log4j.spi">ThreadContextStack</a></span> <span class="element-name">EMPTY_STACK</span></div> |
| <div class="block">Empty, immutable ContextStack.</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="init()"> |
| <h3>init</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">init</span>()</div> |
| <div class="block"><em>Consider private, used for testing.</em></div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="put(java.lang.String,java.lang.String)"> |
| <h3>put</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">put</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> key, |
| <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> value)</span></div> |
| <div class="block">Puts a context value (the <code>value</code> parameter) as identified with the <code>key</code> parameter into |
| the current thread's context map. |
| |
| <p> |
| If the current thread does not have a context map it is created as a side effect. |
| </p></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>key</code> - The key name.</dd> |
| <dd><code>value</code> - The key value.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="putIfNull(java.lang.String,java.lang.String)"> |
| <h3>putIfNull</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">putIfNull</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> key, |
| <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> value)</span></div> |
| <div class="block">Puts a context value (the <code>value</code> parameter) as identified with the <code>key</code> parameter into |
| the current thread's context map if the key does not exist. |
| |
| <p> |
| If the current thread does not have a context map it is created as a side effect. |
| </p></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>key</code> - The key name.</dd> |
| <dd><code>value</code> - The key value.</dd> |
| <dt>Since:</dt> |
| <dd>2.13.0</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="putAll(java.util.Map)"> |
| <h3>putAll</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">putAll</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<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/String.html" title="class or interface in java.lang" class="external-link">String</a>> m)</span></div> |
| <div class="block">Puts all given context map entries into the current thread's |
| context map. |
| |
| <p>If the current thread does not have a context map it is |
| created as a side effect.</p></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>m</code> - The map.</dd> |
| <dt>Since:</dt> |
| <dd>2.7</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="get(java.lang.String)"> |
| <h3>get</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <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> <span class="element-name">get</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> key)</span></div> |
| <div class="block">Gets the context value identified by the <code>key</code> parameter. |
| |
| <p> |
| This method has no side effects. |
| </p></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>key</code> - The key to locate.</dd> |
| <dt>Returns:</dt> |
| <dd>The value associated with the key or null.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="remove(java.lang.String)"> |
| <h3>remove</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">remove</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> key)</span></div> |
| <div class="block">Removes the context value identified by the <code>key</code> parameter.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>key</code> - The key to remove.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="removeAll(java.lang.Iterable)"> |
| <h3>removeAll</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">removeAll</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a><<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>> keys)</span></div> |
| <div class="block">Removes the context values identified by the <code>keys</code> parameter.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>keys</code> - The keys to remove.</dd> |
| <dt>Since:</dt> |
| <dd>2.8</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="clearMap()"> |
| <h3>clearMap</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">clearMap</span>()</div> |
| <div class="block">Clears the context map.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="clearAll()"> |
| <h3>clearAll</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">clearAll</span>()</div> |
| <div class="block">Clears the context map and stack.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="containsKey(java.lang.String)"> |
| <h3>containsKey</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">boolean</span> <span class="element-name">containsKey</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> key)</span></div> |
| <div class="block">Determines if the key is in the context.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>key</code> - The key to locate.</dd> |
| <dt>Returns:</dt> |
| <dd>True if the key is in the context, false otherwise.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getContext()"> |
| <h3>getContext</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<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/String.html" title="class or interface in java.lang" class="external-link">String</a>></span> <span class="element-name">getContext</span>()</div> |
| <div class="block">Returns a mutable copy of current thread's context Map.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>a mutable copy of the context.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getImmutableContext()"> |
| <h3>getImmutableContext</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<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/String.html" title="class or interface in java.lang" class="external-link">String</a>></span> <span class="element-name">getImmutableContext</span>()</div> |
| <div class="block">Returns an immutable view of the current thread's context Map.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>An immutable view of the ThreadContext Map.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getThreadContextMap()"> |
| <h3>getThreadContextMap</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type"><a href="spi/ReadOnlyThreadContextMap.html" title="interface in org.apache.logging.log4j.spi">ReadOnlyThreadContextMap</a></span> <span class="element-name">getThreadContextMap</span>()</div> |
| <div class="block">Returns a read-only view of the internal data structure used to store thread context key-value pairs, |
| or <code>null</code> if the internal data structure does not implement the |
| <code>ReadOnlyThreadContextMap</code> interface. |
| <p> |
| The <a href="spi/DefaultThreadContextMap.html" title="class in org.apache.logging.log4j.spi"><code>DefaultThreadContextMap</code></a> implementation does not implement <code>ReadOnlyThreadContextMap</code>, so by |
| default this method returns <code>null</code>. |
| </p></div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>the internal data structure used to store thread context key-value pairs or <code>null</code></dd> |
| <dt>Since:</dt> |
| <dd>2.8</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="spi/ThreadContextMapFactory.html" title="class in org.apache.logging.log4j.spi"><code>ThreadContextMapFactory</code></a></li> |
| <li><a href="spi/DefaultThreadContextMap.html" title="class in org.apache.logging.log4j.spi"><code>DefaultThreadContextMap</code></a></li> |
| <li><code>CopyOnWriteSortedArrayThreadContextMap</code></li> |
| <li><code>GarbageFreeSortedArrayThreadContextMap</code></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="isEmpty()"> |
| <h3>isEmpty</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">boolean</span> <span class="element-name">isEmpty</span>()</div> |
| <div class="block">Returns true if the Map is empty.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>true if the Map is empty, false otherwise.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="clearStack()"> |
| <h3>clearStack</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">clearStack</span>()</div> |
| <div class="block">Clears the stack for this thread.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="cloneStack()"> |
| <h3>cloneStack</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type"><a href="ThreadContext.ContextStack.html" title="interface in org.apache.logging.log4j">ThreadContext.ContextStack</a></span> <span class="element-name">cloneStack</span>()</div> |
| <div class="block">Returns a copy of this thread's stack.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>A copy of this thread's stack.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getImmutableStack()"> |
| <h3>getImmutableStack</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type"><a href="ThreadContext.ContextStack.html" title="interface in org.apache.logging.log4j">ThreadContext.ContextStack</a></span> <span class="element-name">getImmutableStack</span>()</div> |
| <div class="block">Gets an immutable copy of this current thread's context stack.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>an immutable copy of the ThreadContext stack.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="setStack(java.util.Collection)"> |
| <h3>setStack</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">setStack</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a><<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>> stack)</span></div> |
| <div class="block">Sets this thread's stack.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>stack</code> - The stack to use.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getDepth()"> |
| <h3>getDepth</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">int</span> <span class="element-name">getDepth</span>()</div> |
| <div class="block">Gets the current nesting depth of this thread's stack.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>the number of items in the stack.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="#trim(int)"><code>trim(int)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="pop()"> |
| <h3>pop</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <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> <span class="element-name">pop</span>()</div> |
| <div class="block">Returns the value of the last item placed on the stack. |
| |
| <p> |
| The returned value is the value that was pushed last. If no context is available, then the empty string "" is |
| returned. |
| </p></div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>String The innermost diagnostic context.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="peek()"> |
| <h3>peek</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <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> <span class="element-name">peek</span>()</div> |
| <div class="block">Looks at the last diagnostic context at the top of this NDC without removing it. |
| |
| <p> |
| The returned value is the value that was pushed last. If no context is available, then the empty string "" is |
| returned. |
| </p></div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>String The innermost diagnostic context.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="push(java.lang.String)"> |
| <h3>push</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">push</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> message)</span></div> |
| <div class="block">Pushes new diagnostic context information for the current thread. |
| |
| <p> |
| The contents of the <code>message</code> parameter is determined solely by the client. |
| </p></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>message</code> - The new diagnostic context information.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="push(java.lang.String,java.lang.Object...)"> |
| <h3>push</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">push</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> message, |
| <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>... args)</span></div> |
| <div class="block">Pushes new diagnostic context information for the current thread. |
| |
| <p> |
| The contents of the <code>message</code> and args parameters are determined solely by the client. The message |
| will be treated as a format String and tokens will be replaced with the String value of the arguments in |
| accordance with ParameterizedMessage. |
| </p></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>message</code> - The new diagnostic context information.</dd> |
| <dd><code>args</code> - Parameters for the message.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="removeStack()"> |
| <h3>removeStack</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">removeStack</span>()</div> |
| <div class="block">Removes the diagnostic context for this thread. |
| |
| <p> |
| Each thread that created a diagnostic context by calling <a href="#push(java.lang.String)"><code>push(java.lang.String)</code></a> should call this method before exiting. |
| Otherwise, the memory used by the <b>thread</b> cannot be reclaimed by the VM. |
| </p> |
| |
| <p> |
| As this is such an important problem in heavy duty systems and because it is difficult to always guarantee that |
| the remove method is called before exiting a thread, this method has been augmented to lazily remove references |
| to dead threads. In practice, this means that you can be a little sloppy and occasionally forget to call |
| <a href="#remove(java.lang.String)"><code>remove(java.lang.String)</code></a> before exiting a thread. However, you must call <code>remove</code> sometime. If you never call |
| it, then your application is sure to run out of memory. |
| </p></div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="trim(int)"> |
| <h3>trim</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">trim</span><wbr><span class="parameters">(int depth)</span></div> |
| <div class="block">Trims elements from this diagnostic context. If the current depth is smaller or equal to <code>maxDepth</code>, |
| then no action is taken. If the current depth is larger than newDepth then all elements at maxDepth or higher are |
| discarded. |
| |
| <p> |
| This method is a convenient alternative to multiple <a href="#pop()"><code>pop()</code></a> calls. Moreover, it is often the case that at |
| the end of complex call sequences, the depth of the ThreadContext is unpredictable. The <code>trim</code> method |
| circumvents this problem. |
| </p> |
| |
| <p> |
| For example, the combination |
| </p> |
| |
| <pre> |
| void foo() { |
| final int depth = ThreadContext.getDepth(); |
| |
| // ... complex sequence of calls |
| |
| ThreadContext.trim(depth); |
| } |
| </pre> |
| |
| <p> |
| ensures that between the entry and exit of <code>foo</code> the depth of the diagnostic stack is conserved. |
| </p></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>depth</code> - The number of elements to keep.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="#getDepth()"><code>getDepth()</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </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 © 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> |