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 { + <color:green>app.log</color> +} +class "1st rollover" as first { + <color:green>app.log</color> + app.1.log +} +class "2nd rollover" as second { + <color:green>app.log</color> + app.1.log + app.2.log +} +class "3rd rollover" as third { + <color:green>app.log</color> + app.1.log + app.2.log + app.3.log +} +class "4th rollover" as fourth { + <color:green>app.log</color> + app.1.log + app.2.log + app.3.log +} + +object "Delete file" as delete + +initial::app.log -> first::app.1.log + +first::app.log -> second::app.1.log +first::app.1.log -> second::app.2.log + +second::app.log -> third::app.1.log +second::app.1.log -> third::app.2.log +second::app.2.log -> third::app.3.log + +third::app.log -> fourth::app.1.log +third::app.1.log -> fourth::app.2.log +third::app.2.log -> fourth::app.3.log +third::app.3.log -[#red]-> 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 { + <color:green>app.log</color> +} +class "1st rollover" as first { + <color:green>app.log</color> + app.1.log +} +class "2nd rollover" as second { + <color:green>app.log</color> + app.1.log + app.2.log +} +class "3rd rollover" as third { + <color:green>app.log</color> + app.1.log + app.2.log + app.3.log +} +class "4th rollover" as fourth { + <color:green>app.log</color> + app.1.log + app.2.log + app.3.log +} + +object "Delete file" as delete + +initial::app.log -> first::app.1.log + +first::app.log -> second::app.2.log +first::app.1.log -> second::app.1.log + +second::app.log -> third::app.3.log +second::app.1.log -> third::app.1.log +second::app.2.log -> third::app.2.log + +third::app.log -> fourth::app.3.log +third::app.1.log -[#red]-> delete +third::app.2.log -> fourth::app.1.log +third::app.3.log -> 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 { + <color:green>app.log</color> +} +class "1st rollover" as first { + <color:green>app.log</color> + app.1.log +} +class "2nd rollover" as second { + <color:green>app.log</color> + app.1.log + app.2.log +} +class "3rd rollover" as third { + <color:green>app.log</color> + app.1.log + app.2.log + app.3.log +} +class "4th rollover" as fourth { + <color:green>app.log</color> + app.1.log + app.2.log + app.3.log + app.4.log +} + +initial::app.log -> first::app.1.log + +first::app.log -> second::app.2.log +first::app.1.log -> second::app.1.log + +second::app.log -> third::app.3.log +second::app.1.log -> third::app.1.log +second::app.2.log -> third::app.2.log + +third::app.log -> fourth::app.4.log +third::app.1.log -> fourth::app.1.log +third::app.2.log -> fourth::app.2.log +third::app.3.log -> 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) +-> 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 --> Interpolator + +class Interpolator { + StrLookup[] lookups + String lookup(String key) + String lookup(LogEvent event, String key) +} + +Interpolator --> "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’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:<key></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>