This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch main-site-stg-out
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/main-site-stg-out by this push:
     new 67dcc0eeec Add website content generated from 
`1b46af09e808d7265bc4e4e8a90ff8eca7c7f139`
67dcc0eeec is described below

commit 67dcc0eeecc5410471a6100f4df2592a12c209ec
Author: ASF Logging Services RM <priv...@logging.apache.org>
AuthorDate: Fri Mar 21 08:22:51 2025 +0000

    Add website content generated from 
`1b46af09e808d7265bc4e4e8a90ff8eca7c7f139`
---
 ...ag-0c23746e246efa4a462049e2adc4b0349185aa77.svg |   1 -
 ...ag-2158b7cc88b372c32a9592f8cdbc1cc926bb8b80.svg |   1 -
 ...ag-35cc4e8101ffe76d0edc44ed334a6273018dc51b.svg |   1 -
 ...ag-4d55aeb99a0ae8707b4121b1f76e9544af16b3c4.svg |   1 -
 ...ag-5c97f284d82478c0499cab16fe90893de781b11f.svg |   1 -
 ...ag-768e5e02508ea736d8901892b519a6d3a7a770ab.svg |   1 -
 ...ag-a15d9b3aaacbf863f81fe0dcb0ed21346b6c46ed.svg |   1 -
 ...ag-d5122741a680d765fa3170a444015b615a1fdafd.svg |   1 -
 manual/appenders/rolling-file.html                 | 134 ++++++++++++++++++++-
 manual/filters.html                                |  97 +++++++++++++--
 manual/installation.html                           |  49 +++++++-
 manual/lookups.html                                |  69 ++++++++++-
 manual/systemproperties.html                       |  31 +++++
 release-notes.html                                 |  12 +-
 sitemap.xml                                        | 100 +++++++--------
 15 files changed, 415 insertions(+), 85 deletions(-)

diff --git a/_images/diag-0c23746e246efa4a462049e2adc4b0349185aa77.svg 
b/_images/diag-0c23746e246efa4a462049e2adc4b0349185aa77.svg
deleted file mode 100644
index 4c2dd6a5f5..0000000000
--- a/_images/diag-0c23746e246efa4a462049e2adc4b0349185aa77.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
contentStyleType="text/css" height="405px" preserveAspectRatio="none" 
style="width:390px;height:405px;background:#FFFFFF;" version="1.1" viewBox="0 0 
390 405" width="390px" zoomAndPan="magnify"><defs/><g><ellipse cx="210" cy="20" 
fill="#222222" rx="10" ry="10" style="stroke:#222222;stroke-width:1.0;"/><rect 
fill="#F1F1F1" height="33.9688" rx="12.5" r [...]
\ No newline at end of file
diff --git a/_images/diag-2158b7cc88b372c32a9592f8cdbc1cc926bb8b80.svg 
b/_images/diag-2158b7cc88b372c32a9592f8cdbc1cc926bb8b80.svg
deleted file mode 100644
index ebf1b851eb..0000000000
--- a/_images/diag-2158b7cc88b372c32a9592f8cdbc1cc926bb8b80.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
contentStyleType="text/css" height="417px" preserveAspectRatio="none" 
style="width:442px;height:417px;background:#FFFFFF;" version="1.1" viewBox="0 0 
442 417" width="442px" zoomAndPan="magnify"><defs/><g><ellipse cx="215.75" 
cy="20" fill="#222222" rx="10" ry="10" 
style="stroke:#222222;stroke-width:1.0;"/><rect fill="none" height="270.3628" 
style="str [...]
\ No newline at end of file
diff --git a/_images/diag-35cc4e8101ffe76d0edc44ed334a6273018dc51b.svg 
b/_images/diag-35cc4e8101ffe76d0edc44ed334a6273018dc51b.svg
deleted file mode 100644
index 881ad85f71..0000000000
--- a/_images/diag-35cc4e8101ffe76d0edc44ed334a6273018dc51b.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
contentStyleType="text/css" height="226px" preserveAspectRatio="none" 
style="width:771px;height:226px;background:#FFFFFF;" version="1.1" viewBox="0 0 
771 226" width="771px" zoomAndPan="magnify"><defs/><g><!--class initial--><g 
id="elem_initial"><rect codeLine="1" fill="#F1F1F1" height="64.2969" 
id="initial" rx="2.5" ry="2.5" style="stroke:#181818;str [...]
\ No newline at end of file
diff --git a/_images/diag-4d55aeb99a0ae8707b4121b1f76e9544af16b3c4.svg 
b/_images/diag-4d55aeb99a0ae8707b4121b1f76e9544af16b3c4.svg
deleted file mode 100644
index 230ea88820..0000000000
--- a/_images/diag-4d55aeb99a0ae8707b4121b1f76e9544af16b3c4.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
contentStyleType="text/css" height="424px" preserveAspectRatio="none" 
style="width:281px;height:424px;background:#FFFFFF;" version="1.1" viewBox="0 0 
281 424" width="281px" zoomAndPan="magnify"><defs/><g><ellipse cx="128.5" 
cy="20" fill="#222222" rx="10" ry="10" 
style="stroke:#222222;stroke-width:1.0;"/><rect fill="#F1F1F1" height="33.9688" 
rx="12.5" [...]
\ No newline at end of file
diff --git a/_images/diag-5c97f284d82478c0499cab16fe90893de781b11f.svg 
b/_images/diag-5c97f284d82478c0499cab16fe90893de781b11f.svg
deleted file mode 100644
index 0460e96382..0000000000
--- a/_images/diag-5c97f284d82478c0499cab16fe90893de781b11f.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
contentStyleType="text/css" height="408px" preserveAspectRatio="none" 
style="width:325px;height:408px;background:#FFFFFF;" version="1.1" viewBox="0 0 
325 408" width="325px" zoomAndPan="magnify"><defs/><g><!--class 
StrSubstitutor--><g id="elem_StrSubstitutor"><rect codeLine="1" fill="#F1F1F1" 
height="96.8906" id="StrSubstitutor" rx="2.5" ry="2.5" styl [...]
\ No newline at end of file
diff --git a/_images/diag-768e5e02508ea736d8901892b519a6d3a7a770ab.svg 
b/_images/diag-768e5e02508ea736d8901892b519a6d3a7a770ab.svg
deleted file mode 100644
index 1e0909caa2..0000000000
--- a/_images/diag-768e5e02508ea736d8901892b519a6d3a7a770ab.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
contentStyleType="text/css" height="143px" preserveAspectRatio="none" 
style="width:771px;height:143px;background:#FFFFFF;" version="1.1" viewBox="0 0 
771 143" width="771px" zoomAndPan="magnify"><defs/><g><!--class initial--><g 
id="elem_initial"><rect codeLine="1" fill="#F1F1F1" height="64.2969" 
id="initial" rx="2.5" ry="2.5" style="stroke:#181818;str [...]
\ No newline at end of file
diff --git a/_images/diag-a15d9b3aaacbf863f81fe0dcb0ed21346b6c46ed.svg 
b/_images/diag-a15d9b3aaacbf863f81fe0dcb0ed21346b6c46ed.svg
deleted file mode 100644
index 673dd699c8..0000000000
--- a/_images/diag-a15d9b3aaacbf863f81fe0dcb0ed21346b6c46ed.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
contentStyleType="text/css" height="275px" preserveAspectRatio="none" 
style="width:281px;height:275px;background:#FFFFFF;" version="1.1" viewBox="0 0 
281 275" width="281px" zoomAndPan="magnify"><defs/><g><ellipse cx="137.5" 
cy="20" fill="#222222" rx="10" ry="10" 
style="stroke:#222222;stroke-width:1.0;"/><rect fill="#F1F1F1" height="33.9688" 
rx="12.5" [...]
\ No newline at end of file
diff --git a/_images/diag-d5122741a680d765fa3170a444015b615a1fdafd.svg 
b/_images/diag-d5122741a680d765fa3170a444015b615a1fdafd.svg
deleted file mode 100644
index 7d4b4be182..0000000000
--- a/_images/diag-d5122741a680d765fa3170a444015b615a1fdafd.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
contentStyleType="text/css" height="226px" preserveAspectRatio="none" 
style="width:771px;height:226px;background:#FFFFFF;" version="1.1" viewBox="0 0 
771 226" width="771px" zoomAndPan="magnify"><defs/><g><!--class initial--><g 
id="elem_initial"><rect codeLine="1" fill="#F1F1F1" height="64.2969" 
id="initial" rx="2.5" ry="2.5" style="stroke:#181818;str [...]
\ No newline at end of file
diff --git a/manual/appenders/rolling-file.html 
b/manual/appenders/rolling-file.html
index a829fc41b9..962c778795 100644
--- a/manual/appenders/rolling-file.html
+++ b/manual/appenders/rolling-file.html
@@ -1552,9 +1552,50 @@ It is <strong>not</strong> the default strategy of Log4j 
2.</p>
 <div class="paragraph">
 <p>Assuming <code>min="1"</code> and <code>max="3"</code> the rotation of the 
log files is represented in the graph below:</p>
 </div>
-<div class="imageblock kroki">
+<div class="literalblock kroki-error">
 <div class="content">
-<img src="../../_images/diag-d5122741a680d765fa3170a444015b615a1fdafd.svg" 
alt="Diagram">
+<pre>@startuml
+class "Initial status" as initial {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+}
+class "1st rollover" as first {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+  app.1.log
+}
+class "2nd rollover" as second {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+  app.1.log
+  app.2.log
+}
+class "3rd rollover" as third {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+  app.1.log
+  app.2.log
+  app.3.log
+}
+class "4th rollover" as fourth {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+  app.1.log
+  app.2.log
+  app.3.log
+}
+
+object "Delete file" as delete
+
+initial::app.log -&gt; first::app.1.log
+
+first::app.log -&gt; second::app.1.log
+first::app.1.log -&gt; second::app.2.log
+
+second::app.log -&gt; third::app.1.log
+second::app.1.log -&gt; third::app.2.log
+second::app.2.log -&gt; third::app.3.log
+
+third::app.log -&gt; fourth::app.1.log
+third::app.1.log -&gt; fourth::app.2.log
+third::app.2.log -&gt; fourth::app.3.log
+third::app.3.log -[#red]-&gt; delete
+@enduml</pre>
 </div>
 </div>
 </dd>
@@ -1582,9 +1623,50 @@ It is <strong>not</strong> the default strategy of Log4j 
2.</p>
 <div class="paragraph">
 <p>Assuming <code>min="1"</code> and <code>max="3"</code> the rotation of the 
log files is represented in the graph below:</p>
 </div>
-<div class="imageblock kroki">
+<div class="literalblock kroki-error">
 <div class="content">
-<img src="../../_images/diag-35cc4e8101ffe76d0edc44ed334a6273018dc51b.svg" 
alt="Diagram">
+<pre>@startuml
+class "Initial status" as initial {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+}
+class "1st rollover" as first {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+  app.1.log
+}
+class "2nd rollover" as second {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+  app.1.log
+  app.2.log
+}
+class "3rd rollover" as third {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+  app.1.log
+  app.2.log
+  app.3.log
+}
+class "4th rollover" as fourth {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+  app.1.log
+  app.2.log
+  app.3.log
+}
+
+object "Delete file" as delete
+
+initial::app.log -&gt; first::app.1.log
+
+first::app.log -&gt; second::app.2.log
+first::app.1.log -&gt; second::app.1.log
+
+second::app.log -&gt; third::app.3.log
+second::app.1.log -&gt; third::app.1.log
+second::app.2.log -&gt; third::app.2.log
+
+third::app.log -&gt; fourth::app.3.log
+third::app.1.log -[#red]-&gt; delete
+third::app.2.log -&gt; fourth::app.1.log
+third::app.3.log -&gt; fourth::app.2.log
+@enduml</pre>
 </div>
 </div>
 </dd>
@@ -1597,9 +1679,49 @@ It is <strong>not</strong> the default strategy of Log4j 
2.</p>
 <div class="paragraph">
 <p>Using the <code>nomax</code> strategy no files will ever be deleted and 
newer archive files will be assigned increasing index numbers, starting from 
<code>min</code>.</p>
 </div>
-<div class="imageblock kroki">
+<div class="literalblock kroki-error">
 <div class="content">
-<img src="../../_images/diag-768e5e02508ea736d8901892b519a6d3a7a770ab.svg" 
alt="Diagram">
+<pre>@startuml
+class "Initial status" as initial {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+}
+class "1st rollover" as first {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+  app.1.log
+}
+class "2nd rollover" as second {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+  app.1.log
+  app.2.log
+}
+class "3rd rollover" as third {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+  app.1.log
+  app.2.log
+  app.3.log
+}
+class "4th rollover" as fourth {
+  &lt;color:green&gt;app.log&lt;/color&gt;
+  app.1.log
+  app.2.log
+  app.3.log
+  app.4.log
+}
+
+initial::app.log -&gt; first::app.1.log
+
+first::app.log -&gt; second::app.2.log
+first::app.1.log -&gt; second::app.1.log
+
+second::app.log -&gt; third::app.3.log
+second::app.1.log -&gt; third::app.1.log
+second::app.2.log -&gt; third::app.2.log
+
+third::app.log -&gt; fourth::app.4.log
+third::app.1.log -&gt; fourth::app.1.log
+third::app.2.log -&gt; fourth::app.2.log
+third::app.3.log -&gt; fourth::app.3.log
+@enduml</pre>
 </div>
 </div>
 </dd>
diff --git a/manual/filters.html b/manual/filters.html
index 51e6f253cf..a2d646c922 100644
--- a/manual/filters.html
+++ b/manual/filters.html
@@ -401,9 +401,31 @@ e.g., log event creation, population of context data, 
formatting, transfer throu
 </div>
 <div class="sect2">
 <h3 id="logger-stage"><a class="anchor" href="#logger-stage"></a>1. 
<code>Logger</code> stage</h3>
-<div class="imageblock kroki">
+<div class="literalblock kroki-error">
 <div class="content">
-<img src="../_images/diag-2158b7cc88b372c32a9592f8cdbc1cc926bb8b80.svg" 
alt="Diagram">
+<pre>@startuml
+start
+group Logger
+
+:A Logger method;
+
+switch (Apply global filter)
+case (DENY)
+    #pink:Discard;
+    detach
+case (ACCEPT)
+case (NEUTRAL)
+    if (Is less severe than logger level?) then (yes)
+        #pink:Discard;
+        detach
+    else (no)
+        ' The label improves spacing
+        label a1
+    endif
+endswitch
+end group
+:Create LogEvent;
+stop</pre>
 </div>
 </div>
 <div class="paragraph">
@@ -475,9 +497,29 @@ or
 </div>
 <div class="sect2">
 <h3 id="logger-config-stage"><a class="anchor" 
href="#logger-config-stage"></a>2. <code>LoggerConfig</code> stage</h3>
-<div class="imageblock kroki">
+<div class="literalblock kroki-error">
 <div class="content">
-<img src="../_images/diag-4d55aeb99a0ae8707b4121b1f76e9544af16b3c4.svg" 
alt="Diagram">
+<pre>@startuml
+start
+:LogEvent;
+
+group LoggerConfig
+repeat
+
+:LoggerConfig#log();
+
+if (Apply logger filter) then (DENY)
+    #pink:Discard;
+    detach
+else (not DENY)
+    ' The label improves spacing
+    label a1
+endif
+repeat while (Go to parent logger?) is (yes)
+-&gt; no;
+end group
+stop
+@enduml</pre>
 </div>
 </div>
 <div class="paragraph">
@@ -492,9 +534,33 @@ until it reaches the logger that references the chosen 
appender.</p>
 </div>
 <div class="sect2">
 <h3 id="appender-control-stage"><a class="anchor" 
href="#appender-control-stage"></a>3. <code>AppenderControl</code> stage</h3>
-<div class="imageblock kroki">
+<div class="literalblock kroki-error">
 <div class="content">
-<img src="../_images/diag-0c23746e246efa4a462049e2adc4b0349185aa77.svg" 
alt="Diagram">
+<pre>@startuml
+start
+:LogEvent;
+
+group AppenderControl
+
+:AppenderControl#callAppender();
+
+if (Is less severe then appender reference level?) then (yes)
+    #pink:Discard;
+    detach
+else (no)
+    ' The label improves spacing
+    label a2
+endif
+if (Apply appender reference filter) then (DENY)
+    #pink:Discard;
+    detach
+else (not DENY)
+    ' The label improves spacing
+    label a1
+endif
+end group
+stop
+@enduml</pre>
 </div>
 </div>
 <div class="paragraph">
@@ -515,9 +581,24 @@ of the appender reference.</p>
 </div>
 <div class="sect2">
 <h3 id="appender-stage"><a class="anchor" href="#appender-stage"></a>4. 
<code>Appender</code> stage (optional)</h3>
-<div class="imageblock kroki">
+<div class="literalblock kroki-error">
 <div class="content">
-<img src="../_images/diag-a15d9b3aaacbf863f81fe0dcb0ed21346b6c46ed.svg" 
alt="Diagram">
+<pre>@startuml
+start
+:LogEvent;
+
+group Appender
+
+if (Apply appender filter) then (DENY)
+    #pink:Discard;
+    detach
+else (not DENY)
+    ' The label improves spacing
+    label a1
+endif
+end group
+#palegreen:Appender#append();
+@enduml</pre>
 </div>
 </div>
 <div class="paragraph">
diff --git a/manual/installation.html b/manual/installation.html
index 74bdc2b5fc..e3a35d5726 100644
--- a/manual/installation.html
+++ b/manual/installation.html
@@ -405,11 +405,54 @@ In this case, you need to install <code>log4j-core</code> 
and <code>log4j-slf4j2
 <div class="paragraph">
 <p>To make things a little bit more tangible, consider the following 
visualization of a typical Log4j Core installation with bridges for an 
application:</p>
 </div>
-<div class="imageblock kroki">
+<div class="literalblock kroki-error">
+<div class="title">Visualization of a typical Log4j Core installation with 
SLF4J, JUL, and JPL bridges.</div>
 <div class="content">
-<img src="../_images/diag-1fd758c2554d79996565796f77cf0f8dc6b3bca2.svg" 
alt="Visualization of a typical Log4j Core installation with SLF4J, JUL, and 
JPL bridges.">
+<pre>/-----------------------------------------------------------------------------------\
+|                                                                              
     |
+|       +------------+                       +----------+          
+----------+     |
+|       |            |                       |          |          |          
|     |
+|       |            v                       |          v          |          
v     |
+| +-----+-----+ +---------+ +---------+ +----+----+ +-------+ +----+----+ 
+-------+ |
+| |           | |{d}c1FF  | |         | |         | |{d}c1FF| |         | 
|{d}c1FF| |
+| |Application| |Log4j API| |Library 1| |Library 2| | SLF4J | |Library 3| |  
JUL  | |
+| |           | |         | |         | |         | |       | |         | |    
   | |
+| +-----------+ +--+------+ +----+----+ +---------+ +---+---+ +---------+ 
+---+---+ |
+|                  :   ^         |                      :                     
:     |
+|                  |   |         |                      |                     
|     |
+| Compile time     |   |         |                      |                     
|     |
+\------------------|---|---------|----------------------|---------------------|-----/
+                   |   |         |                      |                     |
+                   |   |         |                /-----/         /-----------/
+                   |   |         |                |               |
+        /----------/   \------+--|----------+-----|---------\     |
+        |                     |  |          |     |         |     |
+/-------|---------------------|--|----------|-----|---------|-----|-----------------\
+|       |                     |  |          |     |         |     |         
Runtime |
+|       v                     :  |          :     v         :     v            
     |
+| +----------+          +-----+------+ +----+---------+ +---+--------+         
     |
+| |cGRE      |          |cYEL        | |cYEL          | |cYEL        |         
     |
+| |Log4j Core|          |JPL to Log4j| |SLF4J to Log4j| |JUL to Log4j|         
     |
+| |          |          |            | |              | |            |         
     |
+| +----------+          +------------+ +--------------+ +------------+         
     |
+| |log4j2.xml|                ^  |                                             
     |
+| +----------+                |  |                                             
     |
+|                             |  |                                             
     |
+|                             |  |                                             
     |
+|            /-------------+--|--/                                             
     |
+|            |             |  |                                                
     |
+| 
+----------+-------------|--|---------------------------------------------------+
 |
+| |JRE                     v  :                                                
   | |
+| |                      +----+--+                                             
   | |
+| |                      |{d}c1FF|                                             
   | |
+| |                      |  JPL  |                                             
   | |
+| |                      |       |                                             
   | |
+| |                      +-------+                                             
   | |
+| |                                                                            
   | |
+| 
+-------------------------------------------------------------------------------+
 |
+|                                                                              
     |
+\-----------------------------------------------------------------------------------/</pre>
 </div>
-<div class="title">Figure 1. Visualization of a typical Log4j Core 
installation with SLF4J, JUL, and JPL bridges.</div>
 </div>
 </div>
 </div>
diff --git a/manual/lookups.html b/manual/lookups.html
index b2d0c8db60..ed939997d7 100644
--- a/manual/lookups.html
+++ b/manual/lookups.html
@@ -307,11 +307,33 @@
 <div class="paragraph">
 <p>Log4j Core provides a flexible and extensible property substitution 
system.</p>
 </div>
-<div id="StrSubstitutor-diagram" class="imageblock kroki">
+<div id="StrSubstitutor-diagram" class="literalblock kroki-error">
+<div class="title">Property substitution system</div>
 <div class="content">
-<img src="../_images/diag-5c97f284d82478c0499cab16fe90893de781b11f.svg" 
alt="Property substitution system">
+<pre>@startuml
+class StrSubstitutor #line.bold {
+  Interpolator interpolator
+  String replace(String input)
+  String replace(LogEvent event, String input)
+}
+
+StrSubstitutor --&gt; Interpolator
+
+class Interpolator {
+  StrLookup[] lookups
+  String lookup(String key)
+  String lookup(LogEvent event, String key)
+}
+
+Interpolator --&gt; "0..*" StrLookup
+
+class StrLookup {
+  String lookup(String input)
+  String lookup(LogEvent event, String key)
+}
+
+@enduml</pre>
 </div>
-<div class="title">Figure 1. Property substitution system</div>
 </div>
 <div class="paragraph">
 <p>The property substitution system is composed of these elements:</p>
@@ -2033,8 +2055,21 @@ represented by this ServletContext is based on.</p></td>
 <div class="sect1">
 <h2 id="third-party"><a class="anchor" href="#third-party"></a>Third-party 
lookups</h2>
 <div class="sectionbody">
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
 <div class="paragraph">
-<p>The following additional lookups are available from third-party vendors:</p>
+<p>These lookups are provided by <strong>third-party</strong> vendors and are 
not maintained by the
+<a href="https://logging.apache.org";>Apache Logging Services</a>
+(Log4j, Log4cxx, Log4net) project.</p>
+</div>
+</td>
+</tr>
+</table>
 </div>
 <div class="sect2">
 <h3 id="KubernetesLookup"><a class="anchor" 
href="#KubernetesLookup"></a>Kubernetes Lookup</h3>
@@ -2083,6 +2118,32 @@ Kubernetes Lookup is distributed as a part of 
Fabric8&#8217;s Kubernetes Client,
 for more details.</p>
 </div>
 </div>
+<div class="sect2">
+<h3 id="TomcatLookup"><a class="anchor" href="#TomcatLookup"></a>Tomcat 
Lookup</h3>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 20%;">
+<col style="width: 80%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p 
class="tableblock">Syntax</p></th>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>tomcat:&lt;key&gt;</code></p>
+<p class="tableblock">where <code>key</code> is one of the
+<a 
href="https://oss.copernik.eu/tomcat/3.x/components/log4j-tomcat#TomcatLookup-keys";>supported
 Tomcat Lookup keys</a></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p 
class="tableblock">Dependency</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a 
href="https://oss.copernik.eu/tomcat/3.x/components/log4j-tomcat#installation";><code>eu.copernik:log4j-tomcat</code></a></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The Tomcat Lookup allows retrieving the names of the currently active 
Tomcat engine, host and application context.
+See
+<a 
href="https://oss.copernik.eu/tomcat/3.x/components/log4j-tomcat#TomcatLookup";>Copernik.eu
 Tomcat Lookup documentation</a> for more details.</p>
+</div>
+</div>
 </div>
 </div>
 <div class="sect1">
diff --git a/manual/systemproperties.html b/manual/systemproperties.html
index bfe7a8dd35..c6006fa623 100644
--- a/manual/systemproperties.html
+++ b/manual/systemproperties.html
@@ -747,6 +747,37 @@ for details.</p>
 </dd>
 </dl>
 </div>
+<div class="paragraph">
+<p>There are also third-party context selector implementations:</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>These context selectors are provided by <strong>third-party</strong> 
vendors and are not maintained by the
+<a href="https://logging.apache.org";>Apache Logging Services</a>
+(Log4j, Log4cxx, Log4net) project.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><a 
href="https://oss.copernik.eu/tomcat/3.x/components/log4j-tomcat#TomcatContextSelector";><code>eu.copernik.log4j.tomcat.TomcatContextSelector</code></a></dt>
+<dd>
+<p>Selects the currently active Tomcat web application and creates synchronous 
loggers.</p>
+</dd>
+<dt class="hdlist1"><a 
href="https://oss.copernik.eu/tomcat/3.x/components/log4j-tomcat#TomcatContextSelector";><code>eu.copernik.log4j.tomcat.TomcatAsyncContextSelector</code></a></dt>
+<dd>
+<p>Selects the currently active Tomcat web application and creates <a 
href="async.html" class="xref page">asynchronous loggers</a>.</p>
+</dd>
+</dl>
+</div>
 </div>
 <div class="sect3">
 <h4 id="log4j.loggerContext.shutdownHookEnabled"><a class="anchor" 
href="#log4j.loggerContext.shutdownHookEnabled"></a><code>log4j.loggerContext.shutdownHookEnabled</code></h4>
diff --git a/release-notes.html b/release-notes.html
index c742589f1e..c4b012ff7f 100644
--- a/release-notes.html
+++ b/release-notes.html
@@ -311,7 +311,7 @@
 <div class="ulist">
 <ul>
 <li>
-<p>Update <code>ch.qos.logback:logback-classic</code> to version 
<code>1.5.17</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3495";>3495</a>)</p>
+<p>Update <code>ch.qos.logback:logback-classic</code> to version 
<code>1.5.18</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3550";>3550</a>)</p>
 </li>
 <li>
 <p>Update <code>ch.qos.logback:logback-core</code> to version 
<code>1.5.17</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3493";>3493</a>)</p>
@@ -338,7 +338,7 @@
 <p>Update <code>com.google.code.gson:gson</code> to version 
<code>2.12.1</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3429";>3429</a>)</p>
 </li>
 <li>
-<p>Update <code>com.google.guava:guava</code> to version 
<code>33.4.0-jre</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3306";>3306</a>)</p>
+<p>Update <code>com.google.guava:guava</code> to version 
<code>33.4.5-jre</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3554";>3554</a>)</p>
 </li>
 <li>
 <p>Update <code>commons-codec:commons-codec</code> to version 
<code>1.18.0</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3419";>3419</a>)</p>
@@ -374,7 +374,7 @@
 <p>Update <code>org.apache.commons:commons-pool2</code> to version 
<code>2.12.1</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3420";>3420</a>)</p>
 </li>
 <li>
-<p>Update <code>org.apache.groovy:groovy-bom</code> to version 
<code>4.0.25</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3413";>3413</a>)</p>
+<p>Update <code>org.apache.groovy:groovy-bom</code> to version 
<code>4.0.26</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3507";>3507</a>)</p>
 </li>
 <li>
 <p>Update <code>org.apache.logging.log4j:log4j-api</code> to version 
<code>2.24.3</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3292";>3292</a>)</p>
@@ -401,7 +401,7 @@
 <p>Update <code>org.junit:junit-bom</code> to version <code>5.12.1</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3540";>3540</a>)</p>
 </li>
 <li>
-<p>Update <code>org.mockito:mockito-bom</code> to version <code>5.16.0</code> 
(<a href="https://github.com/apache/logging-log4j2/pull/3520";>3520</a>)</p>
+<p>Update <code>org.mockito:mockito-bom</code> to version <code>5.16.1</code> 
(<a href="https://github.com/apache/logging-log4j2/pull/3547";>3547</a>)</p>
 </li>
 <li>
 <p>Update <code>org.mongodb:bson</code> to version <code>5.3.1</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3410";>3410</a>)</p>
@@ -431,10 +431,10 @@
 <p>Update <code>org.springframework.boot:spring-boot-autoconfigure</code> to 
version <code>3.4.3</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3481";>3481</a>)</p>
 </li>
 <li>
-<p>Update <code>org.springframework.cloud:spring-cloud-context</code> to 
version <code>4.2.0</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3268";>3268</a>)</p>
+<p>Update <code>org.springframework.cloud:spring-cloud-context</code> to 
version <code>4.2.1</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3557";>3557</a>)</p>
 </li>
 <li>
-<p>Update <code>org.springframework:spring-framework-bom</code> to version 
<code>6.2.4</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3533";>3533</a>)</p>
+<p>Update <code>org.springframework:spring-framework-bom</code> to version 
<code>6.2.5</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/3556";>3556</a>)</p>
 </li>
 <li>
 <p>Update <code>org.wiremock:wiremock</code> to version <code>3.12.1</code> 
(<a href="https://github.com/apache/logging-log4j2/pull/3522";>3522</a>)</p>
diff --git a/sitemap.xml b/sitemap.xml
index 5d9b06b6cf..47bd5d36c0 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2,202 +2,202 @@
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/articles.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/components.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/development.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/download.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/faq.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/hibernate.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/index.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/javadoc.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/log4j-jul.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/log4j-slf4j-impl.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/log4j-slf4j2-impl.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 
<loc>https://logging.apache.org/log4j/3.x/log4j-spring-cloud-config-client.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/log4j-to-jul.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/api.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/appenders.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/appenders/database.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/delegating.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/appenders/file.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/message-queue.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/appenders/network.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/rolling-file.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/architecture.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/async.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/cloud.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/config-intro.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/configuration.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/customconfig.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/dependencyinjection.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/extending.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/filters.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/garbagefree.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/getting-started.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/implementation.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/index.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/installation.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 
<loc>https://logging.apache.org/log4j/3.x/manual/json-template-layout.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/layouts.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/lookups.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/pattern-layout.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/performance.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/plugins.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/scripts.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/systemproperties.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/manual/usage.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/migrate-from-log4j2.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/migrate-from-logback.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/migrate-from-slf4j.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/plugin-reference.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/release-notes.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/3.x/thanks.html</loc>
-<lastmod>2025-03-17T11:54:41.417Z</lastmod>
+<lastmod>2025-03-21T08:22:25.753Z</lastmod>
 </url>
 </urlset>


Reply via email to