This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch 2.x-site-stg-out
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/2.x-site-stg-out by this push:
new 3a5453b33f Add website content generated from
`ab0fdbc51742646144f6ad29715f9bd1d9afa985`
3a5453b33f is described below
commit 3a5453b33f61e077963bbb940909d76b3dcba2e3
Author: ASF Logging Services RM <[email protected]>
AuthorDate: Wed Oct 9 19:48:59 2024 +0000
Add website content generated from
`ab0fdbc51742646144f6ad29715f9bd1d9afa985`
---
components.html | 3 +
development.html | 3 +
download.html | 3 +
faq.html | 3 +
migrate-from-slf4j.html => graalvm.html | 211 +++++++++++++++++++-------------
hibernate.html | 3 +
index.html | 3 +
jakarta.html | 3 +
javadoc.html | 3 +
log4j-iostreams.html | 3 +
log4j-jul.html | 3 +
log4j-spring-boot.html | 3 +
log4j-spring-cloud-config-client.html | 3 +
log4j-to-jul.html | 3 +
manual/api.html | 3 +
manual/appenders.html | 3 +
manual/appenders/database.html | 3 +
manual/appenders/delegating.html | 3 +
manual/appenders/file.html | 3 +
manual/appenders/message-queue.html | 3 +
manual/appenders/network.html | 3 +
manual/appenders/rolling-file.html | 3 +
manual/architecture.html | 3 +
manual/async.html | 3 +
manual/compatibility.html | 3 +
manual/config-intro.html | 3 +
manual/configuration.html | 3 +
manual/customconfig.html | 3 +
manual/customloglevels.html | 3 +
manual/eventlogging.html | 3 +
manual/extending.html | 3 +
manual/filters.html | 3 +
manual/flowtracing.html | 3 +
manual/garbagefree.html | 3 +
manual/getting-started.html | 3 +
manual/implementation.html | 3 +
manual/index.html | 3 +
manual/installation.html | 69 +++++++++--
manual/jmx.html | 3 +
manual/json-template-layout.html | 3 +
manual/layouts.html | 3 +
manual/logbuilder.html | 3 +
manual/lookups.html | 3 +
manual/markers.html | 3 +
manual/messages.html | 3 +
manual/pattern-layout.html | 3 +
manual/performance.html | 3 +
manual/plugins.html | 67 ++++++++--
manual/scripts.html | 3 +
manual/simple-logger.html | 3 +
manual/status-logger.html | 3 +
manual/systemproperties.html | 3 +
manual/thread-context.html | 3 +
migrate-from-log4j1.html | 3 +
migrate-from-logback.html | 3 +
migrate-from-slf4j.html | 3 +
plugin-reference.html | 3 +
release-notes.html | 5 +-
sitemap.xml | 120 +++++++++---------
soa.html | 3 +
60 files changed, 480 insertions(+), 157 deletions(-)
diff --git a/components.html b/components.html
index d5e5dc4cab..8f7fefac91 100644
--- a/components.html
+++ b/components.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/development.html b/development.html
index 786b5d22f4..b9c0826f66 100644
--- a/development.html
+++ b/development.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/download.html b/download.html
index 56a7a5c2f8..2c42707985 100644
--- a/download.html
+++ b/download.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/faq.html b/faq.html
index 28466148e1..30923481b0 100644
--- a/faq.html
+++ b/faq.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/migrate-from-slf4j.html b/graalvm.html
similarity index 74%
copy from migrate-from-slf4j.html
copy to graalvm.html
index 41d525be67..4963b88455 100644
--- a/migrate-from-slf4j.html
+++ b/graalvm.html
@@ -3,8 +3,8 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
- <title>Migrating from SLF4J :: Apache Log4j</title>
- <link rel="canonical"
href="https://logging.apache.org/log4j/2.x/migrate-from-slf4j.html">
+ <title>Building GraalVM native images :: Apache Log4j</title>
+ <link rel="canonical"
href="https://logging.apache.org/log4j/2.x/graalvm.html">
<meta name="generator" content="Antora 3.2.0-alpha.6">
<link rel="stylesheet" href="./_/css/site.css">
<link rel="icon" href="./_/../_images/favicon.ico" type="image/x-icon">
@@ -261,9 +261,12 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-logback.html">Migrating from
Logback</a>
</li>
- <li class="nav-item is-current-page" data-depth="1">
+ <li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item is-current-page" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
@@ -337,37 +340,34 @@
<ul>
<li><a href="index.html">Home</a></li>
<li>Resources</li>
- <li><a href="migrate-from-slf4j.html">Migrating from SLF4J</a></li>
+ <li><a href="graalvm.html">Building GraalVM native images</a></li>
</ul>
</nav>
-<div class="edit-this-page"><a
href="https://github.com/apache/logging-log4j2/edit/2.x/src/site/antora/modules/ROOT/pages/migrate-from-slf4j.adoc">Edit
this Page</a></div>
+<div class="edit-this-page"><a
href="https://github.com/apache/logging-log4j2/edit/2.x/src/site/antora/modules/ROOT/pages/graalvm.adoc">Edit
this Page</a></div>
</div>
<div class="content">
<aside class="toc sidebar" data-title="Contents" data-levels="4">
<div class="toc-menu"></div>
</aside>
<article class="doc">
-<h1 class="page">Migrating from SLF4J</h1>
+<h1 class="page">Building GraalVM native images</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
-<p><a href="https://www.slf4j.org">SLF4J</a> is a logging API whose reference
implementation is <a href="https://logback.qos.ch">Logback</a>, just like <a
href="manual/api.html" class="xref page">Log4j API</a> is a logging API whose
reference implementation is Log4j Core.
-In this page we will guide you through migrating from SLF4J to Log4j API as
your logging API.</p>
+<p>Since version
+<a href="release-notes.html#release-notes-2-25-0" class="xref
page"><code>2.25.0</code></a>
+both
+<a href="manual/api.html" class="xref page">Log4j API</a>
+and
+<a href="manual/implementation.html" class="xref page">its reference
implementation</a>
+provide out-of-the-box support for creating native executables using
+<a href="https://www.graalvm.org/">GraalVM</a>.</p>
</div>
-<div class="admonitionblock tip">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-tip" title="Tip"></i>
-</td>
-<td class="content">
<div class="paragraph">
-<p>Instead of migrating your logging API, SLF4J, are you looking for migrating
your logging implementation, Logback?
-Please refer to <a href="migrate-from-logback.html" class="xref
page">Migrating from Logback</a>.</p>
-</div>
-</td>
-</tr>
-</table>
+<p>This document complements the
+<a href="manual/installation.html" class="xref page">Installation Guide</a>
+and provides additional details on the steps necessary to create native images
that use the Log4j API.
+The information is split depending on which Log4j API implementation you are
using.</p>
</div>
<details>
<summary class="title">Struggling with the logging API, implementation, and
bridge concepts? Click for an introduction.</summary>
@@ -414,94 +414,141 @@ For instance, <code>log4j-slf4j2-impl</code>
<em>bridges</em> SLF4J calls to Log
</div>
</div>
</details>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>Are you looking for an example of GraalVM application that uses the Log4j
API?
+Check out
+the <a
href="https://github.com/apache/logging-log4j-samples/tree/main/log4j-samples-graalvm"><code>log4j-samples-graalvm</code></a>
+project.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="impl-simple"><a class="anchor" href="#impl-simple"></a>Using Simple
Logger</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>If you use
+<a href="manual/simple-logger.html" class="xref page">Simple Logger</a>
shipped with <a href="manual/api.html" class="xref page">Log4j API</a>
+in your application, no additional steps are required to compile a GraalVM
native image.</p>
+</div>
</div>
</div>
<div class="sect1">
-<h2 id="migrating"><a class="anchor" href="#migrating"></a>Migrating</h2>
+<h2 id="impl-core"><a class="anchor" href="#impl-core"></a>Using Log4j
Core</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>If your application or library logs using SLF4J, you can migrate it to
Log4j API as follows:</p>
+<p>Since version
+<a href="release-notes.html#release-notes-2-25-0" class="xref
page"><code>2.25.0</code></a>,
+<a href="manual/implementation.html" class="xref page">Log4j Core</a>
+and
+<a href="components.html" class="xref page">all its official extensions</a>
+are bundled with the necessary
+<a
href="https://www.graalvm.org/latest/reference-manual/native-image/metadata/">GraalVM
reachability metadata</a>
+to help GraalVM with the creation of native images.
+Additional steps are only required:</p>
</div>
-<div class="olist arabic">
-<ol class="arabic">
+<div class="ulist">
+<ul>
<li>
-<p>Remove <code>org.slf4j:slf4j-api</code> dependency</p>
+<p>If you use a configuration file, which is not in a
+<a href="manual/configuration.html#automatic-configuration" class="xref
page">standard location</a>, you need to create a
+<a
href="https://www.graalvm.org/jdk17/reference-manual/native-image/metadata/#resource-metadata-in-json"><code>META-INF/native-image/<groupId>/<artifactId>/resource-config.json</code></a>
file in your classpath with content:</p>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-json hljs"
data-lang="json">{
+ "resources": {
+ "includes": [
+ {
+ "pattern": "path/to/your/configuration/file"
+ }
+ ]
+ }
+}</code></pre>
+</div>
+</div>
</li>
<li>
-<p>Follow the instructions shared in the <em>"Getting started"</em> page for
<a href="manual/getting-started.html#using-api" class="xref page">installing
<code>log4j-api</code> and using it</a></p>
+<p>If you use <strong>third-party</strong>
+<a href="manual/plugins.html" class="xref page">Log4j Plugin JARs</a>
+you need to make sure they contain a
+<a
href="https://www.graalvm.org/jdk17/reference-manual/native-image/metadata/#specifying-reflection-metadata-in-json"><code>reflect-config.json</code></a>
metadata file.
+If that is not the case, please point the maintainer to the
+<a href="manual/plugins.html#plugin-registry" class="xref page">Log4j Plugin
registration documentation</a>.</p>
</li>
-<li>
-<p>Search for <code>org.slf4j</code> usages in your project and replace them
with Log4j API equivalents</p>
-<div class="admonitionblock important">
+</ul>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="impl-jul"><a class="anchor" href="#impl-jul"></a>Using JUL</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Since version <code>2.24.0</code> the
+<a href="manual/installation.html#impl-jul" class="xref page">Log4j API to JUL
bridge</a>
+is tested for compatibility with GraalVM.</p>
+</div>
+<div class="paragraph">
+<p>Although <code>java.util.logging</code> is embedded into the JRE, currently
not all
+<a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Formatter.html"><code>j.u.l.Formatter</code></a>
+and
+<a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Handler.html"><code>j.u.l.Handler</code></a>
+implementations have the required GraalVM metadata.
+See the official
+<a
href="https://www.graalvm.org/latest/reference-manual/native-image/guides/add-logging-to-native-executable/">Add
Logging to a Native Executable</a>
+guide for more information on how to add additional elements to your
configuration.</p>
+</div>
+<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
-<i class="fa icon-important" title="Important"></i>
+<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
<div class="paragraph">
-<p>For an exhaustive list of code changes that need to be carried out, refer
to <a
href="https://docs.openrewrite.org/recipes/java/logging/log4j/slf4jtolog4j">the
SLF4J to Log4j API migration OpenRewrite recipe</a>.
-This you can use to</p>
-</div>
-<div class="olist arabic">
-<ol class="arabic">
-<li>
-<p>either manually follow the described migrations,</p>
-</li>
-<li>
-<p>or run OpenRewrite to automatically migrate the code.</p>
-</li>
-</ol>
+<p>See
+<a
href="https://github.com/apache/logging-log4j-samples/blob/main/log4j-samples-graalvm/src/reachability-metadata/jul/reflect-config.json"><code>reflect-config.json</code>
in our <code>log4j-samples-graalvm</code> example project</a>
+for an example on how to enable <code>j.u.l.FileHandler</code>.</p>
</div>
</td>
</tr>
</table>
</div>
-<div class="dlist">
-<dl>
-<dt class="hdlist1"><a
href="https://www.slf4j.org/api/org/slf4j/LoggerFactory.html"><code>org.slf4j.LoggerFactory</code></a></dt>
-<dd>
-<p>Replace its usages with <a
href="javadoc/log4j-api/org/apache/logging/log4j/LogManager.html"><code>org.apache.logging.log4j.LogManager</code></a>.
-Note that <code>LogManager.getLogger(Foo.class)</code> can be simplified as
<code>LogManager.getLogger()</code>, if <code>Foo</code> is the enclosing class
of the field.</p>
-</dd>
-<dt class="hdlist1"><a
href="https://www.slf4j.org/api/org/slf4j/Logger.html"><code>org.slf4j.Logger</code></a></dt>
-<dd>
-<p>Replace its usages with <a
href="javadoc/log4j-api/org/apache/logging/log4j/Logger.html"><code>org.apache.logging.log4j.Logger</code></a>.
-Since SLF4J’s <code>Logger</code> is almost a parent of Log4j’s
<code>Logger</code>, most methods should work without any changes.</p>
-</dd>
-<dt class="hdlist1"><a
href="https://www.slf4j.org/api/org/slf4j/MDC.html"><code>org.slf4j.MDC</code></a></dt>
-<dd>
-<p>Replace its usages with <a
href="javadoc/log4j-api/org/apache/logging/log4j/ThreadContext.html"><code>org.apache.logging.log4j.ThreadContext</code></a>.</p>
-</dd>
-</dl>
</div>
-</li>
-<li>
-<p>If you use <a
href="https://projectlombok.org/features/log"><code>@Slf4j</code> from
Lombok</a>, you need to replace them with <code>@Log4j2</code> instead.</p>
-</li>
-</ol>
</div>
+<div class="sect1">
+<h2 id="impl-logback"><a class="anchor" href="#impl-logback"></a>Using
Logback</h2>
+<div class="sectionbody">
<div class="paragraph">
-<p>At this stage, you should have your application or library logging using
Log4j API.</p>
+<p>Since version <code>2.24.0</code> the
+<a href="manual/installation.html#impl-logback" class="xref page">Log4j API to
SLF4J bridge</a>
+is tested for compatibility with GraalVM.</p>
</div>
-<div class="dlist">
-<dl>
-<dt class="hdlist1">If it is a library that you migrated,</dt>
-<dd>
-<p>then you don’t need to take any extra steps.
-Unlike applications, libraries should be logging implementation agnostic.
-That is, libraries should log through a logging API, but leave the decision of
the logging implementation to the application.</p>
-</dd>
-<dt class="hdlist1">If it is an application that you migrated, and you are not
using Log4j Core as your logging implementation,</dt>
-<dd>
-<p>then you can consider doing so.
-Certain <a href="manual/api.html" class="xref page">Log4j API features</a>
(e.g., <a href="manual/garbagefree.html" class="xref page">garbage-free
logging</a>) require an end-to-end setup which is mostly possible using Log4j
API in combination with Log4j Core.</p>
<div class="paragraph">
-<p>See <a href="manual/installation.html" class="xref page">Installation</a>
for installing Log4j Core.<br>
-If you are using Logback, refer to <a href="migrate-from-logback.html"
class="xref page">Migrating from Logback</a>.</p>
+<p>While Logback itself does not provide any GraalVM metadata, the data is
available in the third-party
+<a href="https://github.com/oracle/graalvm-reachability-metadata/">GraalVM
reachability metadata repository</a>.</p>
</div>
-</dd>
-</dl>
+<div class="paragraph">
+<p>See the GraalVM Reachability Metadata Support documentation appropriate for
your build tool for more information:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a
href="https://graalvm.github.io/native-build-tools/latest/gradle-plugin.html#metadata-support">Gradle
Plugin documentation</a></p>
+</li>
+<li>
+<p><a
href="https://graalvm.github.io/native-build-tools/latest/maven-plugin.html#metadata-support">Maven
Plugin documentation</a></p>
+</li>
+</ul>
</div>
</div>
</div>
diff --git a/hibernate.html b/hibernate.html
index 72a0be0efc..41c8b4f1f2 100644
--- a/hibernate.html
+++ b/hibernate.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item is-current-page" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/index.html b/index.html
index 2fc012bfe1..9ff318c63c 100644
--- a/index.html
+++ b/index.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/jakarta.html b/jakarta.html
index 3726b6e185..5b4903d6bd 100644
--- a/jakarta.html
+++ b/jakarta.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/javadoc.html b/javadoc.html
index ac74160750..1981abbd8e 100644
--- a/javadoc.html
+++ b/javadoc.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/log4j-iostreams.html b/log4j-iostreams.html
index 159ddc74a3..0457d78682 100644
--- a/log4j-iostreams.html
+++ b/log4j-iostreams.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/log4j-jul.html b/log4j-jul.html
index f24731ba52..c27a0bdaa8 100644
--- a/log4j-jul.html
+++ b/log4j-jul.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/log4j-spring-boot.html b/log4j-spring-boot.html
index 35cc07e35b..b685fdda6a 100644
--- a/log4j-spring-boot.html
+++ b/log4j-spring-boot.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/log4j-spring-cloud-config-client.html
b/log4j-spring-cloud-config-client.html
index 841492140f..b1e4eba399 100644
--- a/log4j-spring-cloud-config-client.html
+++ b/log4j-spring-cloud-config-client.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/log4j-to-jul.html b/log4j-to-jul.html
index fee5126e72..3367b426a0 100644
--- a/log4j-to-jul.html
+++ b/log4j-to-jul.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/api.html b/manual/api.html
index 5f7a834f48..c41dae7666 100644
--- a/manual/api.html
+++ b/manual/api.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/appenders.html b/manual/appenders.html
index d40c086467..ab867ae787 100644
--- a/manual/appenders.html
+++ b/manual/appenders.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/appenders/database.html b/manual/appenders/database.html
index 2b19c67f0c..b8691bd120 100644
--- a/manual/appenders/database.html
+++ b/manual/appenders/database.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../hibernate.html">Integrating with
Hibernate</a>
</li>
diff --git a/manual/appenders/delegating.html b/manual/appenders/delegating.html
index 3e224bf4e0..2eab68402c 100644
--- a/manual/appenders/delegating.html
+++ b/manual/appenders/delegating.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../hibernate.html">Integrating with
Hibernate</a>
</li>
diff --git a/manual/appenders/file.html b/manual/appenders/file.html
index e0c84d25b1..43d2f0c52e 100644
--- a/manual/appenders/file.html
+++ b/manual/appenders/file.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../hibernate.html">Integrating with
Hibernate</a>
</li>
diff --git a/manual/appenders/message-queue.html
b/manual/appenders/message-queue.html
index 58f8cce1e2..ade7226ece 100644
--- a/manual/appenders/message-queue.html
+++ b/manual/appenders/message-queue.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../hibernate.html">Integrating with
Hibernate</a>
</li>
diff --git a/manual/appenders/network.html b/manual/appenders/network.html
index 6abcee0827..97cf46a304 100644
--- a/manual/appenders/network.html
+++ b/manual/appenders/network.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../hibernate.html">Integrating with
Hibernate</a>
</li>
diff --git a/manual/appenders/rolling-file.html
b/manual/appenders/rolling-file.html
index 12356aa381..0a1232835a 100644
--- a/manual/appenders/rolling-file.html
+++ b/manual/appenders/rolling-file.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../hibernate.html">Integrating with
Hibernate</a>
</li>
diff --git a/manual/architecture.html b/manual/architecture.html
index 03b2ac14b6..18c5084a58 100644
--- a/manual/architecture.html
+++ b/manual/architecture.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/async.html b/manual/async.html
index f98afddfa6..7b6817b787 100644
--- a/manual/async.html
+++ b/manual/async.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/compatibility.html b/manual/compatibility.html
index 6322639c61..830577ffe0 100644
--- a/manual/compatibility.html
+++ b/manual/compatibility.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/config-intro.html b/manual/config-intro.html
index 364cb57b18..cc6c61a83c 100644
--- a/manual/config-intro.html
+++ b/manual/config-intro.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/configuration.html b/manual/configuration.html
index 0ca58b161c..d5fac6c9b9 100644
--- a/manual/configuration.html
+++ b/manual/configuration.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/customconfig.html b/manual/customconfig.html
index 7ec0f43810..7debec4368 100644
--- a/manual/customconfig.html
+++ b/manual/customconfig.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/customloglevels.html b/manual/customloglevels.html
index a38e0bc0fc..a5d5b79649 100644
--- a/manual/customloglevels.html
+++ b/manual/customloglevels.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/eventlogging.html b/manual/eventlogging.html
index ab7cb20e4b..d1edfee86a 100644
--- a/manual/eventlogging.html
+++ b/manual/eventlogging.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/extending.html b/manual/extending.html
index 494da4c102..059c93492c 100644
--- a/manual/extending.html
+++ b/manual/extending.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/filters.html b/manual/filters.html
index 36fb0aa87c..779463381e 100644
--- a/manual/filters.html
+++ b/manual/filters.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/flowtracing.html b/manual/flowtracing.html
index 86beb640e7..4b68a23eef 100644
--- a/manual/flowtracing.html
+++ b/manual/flowtracing.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/garbagefree.html b/manual/garbagefree.html
index c6151024b5..90ed84bd73 100644
--- a/manual/garbagefree.html
+++ b/manual/garbagefree.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/getting-started.html b/manual/getting-started.html
index a08cbb8a28..2678dd56d4 100644
--- a/manual/getting-started.html
+++ b/manual/getting-started.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/implementation.html b/manual/implementation.html
index 6b69cda00c..df229bdffb 100644
--- a/manual/implementation.html
+++ b/manual/implementation.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/index.html b/manual/index.html
index 4f5e020fe5..8bef6da62d 100644
--- a/manual/index.html
+++ b/manual/index.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/installation.html b/manual/installation.html
index 390e2dc873..1207c47fed 100644
--- a/manual/installation.html
+++ b/manual/installation.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
@@ -710,6 +713,33 @@ Since currently only
</table>
</div>
<div class="sect2">
+<h3 id="impl-simple"><a class="anchor" href="#impl-simple"></a>Installing
Simple Logger</h3>
+<div class="paragraph">
+<p>The
+<a href="simple-logger.html" class="xref page">Simple Logger</a>
+implementation is embedded in the Log4j API and does not need any external
dependency.
+It is intended as a convenience for environments where either a fully-fledged
logging implementation is missing, or cannot be included for other reasons.
+The Log4j API will log an error to the
+<a href="status-logger.html" class="xref page">Status Logger</a> to avoid its
unintentional usages:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>2024-10-03T11:53:34.281462230Z main ERROR Log4j API could not find a
logging provider.</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>To remove the warning and confirm that you want to use Simple Logger, add a
+<a href="systemproperties.html#property-sources" class="xref
page"><code>log4j2.component.properties</code> file</a>
+at the root of your class path with content:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-properties hljs"
data-lang="properties"># Activate Simple Logger implementation
+log4j.provider =
org.apache.logging.log4j.simple.internal.SimpleProvider</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
<h3 id="impl-core"><a class="anchor" href="#impl-core"></a>Installing Log4j
Core</h3>
<div class="paragraph">
<p>Log4j Core is the reference logging implementation of the Log4j project.
@@ -1165,6 +1195,14 @@ See <a
href="https://docs.spring.io/spring-boot/reference/features/logging.html"
</div>
</div>
<div class="sect3">
+<h4 id="impl-core-graalvm"><a class="anchor"
href="#impl-core-graalvm"></a>Installing Log4j Core for GraalVM
applications</h4>
+<div class="paragraph">
+<p>See
+<a href="../graalvm.html#impl-core" class="xref page">Using Log4j Core</a>
+in our GraalVM guide for more details on how to create GraalVM native
applications that use Log4j Core.</p>
+</div>
+</div>
+<div class="sect3">
<h4 id="impl-core-config"><a class="anchor"
href="#impl-core-config"></a>Configuring Log4j Core</h4>
<div class="paragraph">
<p>As with any other logging implementation, Log4j Core needs to be properly
configured.
@@ -1198,19 +1236,16 @@ A basic configuration can be obtained by adding one of
these files to your appli
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://logging.apache.org/xml/ns
https://logging.apache.org/xml/ns/log4j-config-2.xsd">
-
- <appenders>
+ <Appenders>
<Console name="CONSOLE">
<PatternLayout pattern="%d [%t] %5p %c{1.} - %m%n"/><i
class="conum" data-value="1"></i><b>(1)</b>
</Console>
- </appenders>
-
- <loggers>
- <root level="INFO">
+ </Appenders>
+ <Loggers>
+ <Root level="INFO">
<AppenderRef ref="CONSOLE"/>
- </root>
- </loggers>
-
+ </Root>
+ </Loggers>
</Configuration></code></pre>
</div>
</div>
@@ -1477,6 +1512,14 @@ runtimeOnly 'org.slf4j:slf4j-jdk14:2.0.16' //
SLF4J-to-JUL bridge</code></pre>
</li>
</ul>
</div>
+<div class="sect3">
+<h4 id="impl-jul-graalvm"><a class="anchor"
href="#impl-jul-graalvm"></a>Installing JUL for GraalVM applications</h4>
+<div class="paragraph">
+<p>See
+<a href="../graalvm.html#impl-jul" class="xref page">Using JUL</a>
+in our GraalVM guide for more details on how to create GraalVM native
applications that use JUL.</p>
+</div>
+</div>
</div>
<div class="sect2">
<h3 id="impl-logback"><a class="anchor" href="#impl-logback"></a>Installing
Logback</h3>
@@ -1532,6 +1575,14 @@ runtimeOnly 'org.apache.logging.log4j:log4j-to-slf4j' //
Log4j-to-SLF4J bridge</
<div class="paragraph">
<p>To configure Logback, see <a
href="https://logback.qos.ch/manual/configuration.html">Logback’s
configuration documentation</a>.</p>
</div>
+<div class="sect3">
+<h4 id="impl-jul-logback"><a class="anchor"
href="#impl-jul-logback"></a>Installing Logback for GraalVM applications</h4>
+<div class="paragraph">
+<p>See
+<a href="../graalvm.html#impl-logback" class="xref page">Using Logback</a>
+in our GraalVM guide for more details on how to create GraalVM native
applications that use Logback.</p>
+</div>
+</div>
</div>
</div>
</div>
diff --git a/manual/jmx.html b/manual/jmx.html
index fe0984948b..bb77f2dbb3 100644
--- a/manual/jmx.html
+++ b/manual/jmx.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/json-template-layout.html b/manual/json-template-layout.html
index 4b14fef19c..6fc5727cc2 100644
--- a/manual/json-template-layout.html
+++ b/manual/json-template-layout.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/layouts.html b/manual/layouts.html
index db599f4bc4..33c6fd1f32 100644
--- a/manual/layouts.html
+++ b/manual/layouts.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/logbuilder.html b/manual/logbuilder.html
index b09b517f3c..a4409201ac 100644
--- a/manual/logbuilder.html
+++ b/manual/logbuilder.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/lookups.html b/manual/lookups.html
index dfd9437d9b..7a56a756cc 100644
--- a/manual/lookups.html
+++ b/manual/lookups.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/markers.html b/manual/markers.html
index 1eacd4b5c8..e771660402 100644
--- a/manual/markers.html
+++ b/manual/markers.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/messages.html b/manual/messages.html
index 526a580ed1..4add029c6a 100644
--- a/manual/messages.html
+++ b/manual/messages.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/pattern-layout.html b/manual/pattern-layout.html
index e5c2d5489d..831fb5dbef 100644
--- a/manual/pattern-layout.html
+++ b/manual/pattern-layout.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/performance.html b/manual/performance.html
index 69133eab15..5c575b2875 100644
--- a/manual/performance.html
+++ b/manual/performance.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/plugins.html b/manual/plugins.html
index 6f3a169215..3da305535d 100644
--- a/manual/plugins.html
+++ b/manual/plugins.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
@@ -671,9 +674,42 @@ This uses the same validation as <a
href="https://docs.oracle.com/javase/8/docs/
<h2 id="plugin-registry"><a class="anchor"
href="#plugin-registry"></a>Registering plugins</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>Registering plugins are done by placing a <strong>Log4j plugin
descriptor</strong> (i.e., <code>Log4j2Plugins.dat</code>) into the classpath.
-This file is generated using the <a
href="../javadoc/log4j-core/org/apache/logging/log4j/core/config/plugins/processor/PluginProcessor.html"><code>PluginProcessor</code></a>
annotation processor at compile-time.
-You need to configure your build tool as follows to employ
<code>PluginProcessor</code> by the Java compiler:</p>
+<p>To properly work, each Log4j plugin needs:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>To be registered in the <strong>Log4j Plugin Descriptor</strong> (i.e.,
<code>Log4j2Plugins.dat</code>).
+This file is generated using the
+<a
href="../javadoc/log4j-core/org/apache/logging/log4j/core/config/plugins/processor/PluginProcessor.html"><code>PluginProcessor</code></a>
+annotation processor at compile-time.</p>
+</li>
+<li>
+<p>(Optionally) To be registered in the
+<a
href="https://www.graalvm.org/latest/reference-manual/native-image/metadata/#specifying-metadata-with-json">GraalVM
reachability metadata descriptor</a>, which will allow the plugin to be used
in GraalVM native applications.
+The
+<a
href="../javadoc/log4j-core/org/apache/logging/log4j/core/config/plugins/processor/GraalVmProcessor.html"><code>GraalVmProcessor</code></a>
+annotation processor creates such a file at compile-time.</p>
+</li>
+</ul>
+</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-warning" title="Warning"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>The <code>GraalVmProcessor</code> needs to know the <code>groupId</code>
and <code>artifactId</code> coordinates of your project.
+These must be supplied to the processor using the
<code>log4j.graalvm.groupId</code> and <code>log4j.graalvm.artifactId</code>
annotation processor options.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>You need to configure your build tool as follows to use both plugin
processors:</p>
</div>
<div id="_tabs_1" class="openblock tabs is-sync is-loading">
<div class="content">
@@ -704,7 +740,9 @@ You need to configure your build tool as follows to employ
<code>PluginProcessor
<configuration>
<proc>only</proc>
<annotationProcessorPaths>
- <!-- Include `log4j-core` providing
`org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor` that
generates `Log4j2Plugins.dat` -->
+ <!-- Include `log4j-core` providing
+ 1.
`org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor` that
generates `Log4j2Plugins.dat`
+ 2.
`org.apache.logging.log4j.core.config.plugins.processor.GraalVmProcessor` that
generates the GraalVM reachability metadata file -->
<path>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
@@ -712,9 +750,16 @@ You need to configure your build tool as follows to employ
<code>PluginProcessor
</path>
</annotationProcessorPaths>
<annotationProcessors>
- <!-- Process sources using
`org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor` to
generate `Log4j2Plugins.dat` -->
+ <!-- Process sources using `PluginProcessor` to generate
`Log4j2Plugins.dat` -->
<processor>org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor</processor>
+ <!-- Process sources using `GraalVmProcessor` to generate a
GraalVM reachability metadata file -->
+
<processor>org.apache.logging.log4j.core.config.plugins.processor.GraalVmProcessor</processor>
</annotationProcessors>
+ <compilerArgs>
+ <!-- Provide the project coordinates to `GraalVmProcessor`: -->
+ <arg>-Alog4j.graalvm.groupId=${project.groupId}</arg>
+
<arg>-Alog4j.graalvm.artifactId=${project.artifactId}</arg>
+ </compilerArgs>
</configuration>
</execution>
</executions>
@@ -725,8 +770,16 @@ You need to configure your build tool as follows to employ
<code>PluginProcessor
<div id="_tabs_1_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_1_gradle">
<div class="listingblock">
<div class="content">
-<pre class="highlightjs highlight"><code class="language-groovy hljs"
data-lang="groovy">dependencies {
- // Process sources using `log4j-core` providing
`org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor` that
generates `Log4j2Plugins.dat` -->
+<pre class="highlightjs highlight"><code class="language-groovy hljs"
data-lang="groovy">compileJava {
+ // Provide the project coordinates to the `GraalVmProcessor`:
+ options.compilerArgs << '-Alog4j.graalvm.groupId=org.example'
+ options.compilerArgs << '-Alog4j.graalvm.artifactId=example'
+}
+
+dependencies {
+ // Process sources using:
+ // * `PluginProcessor` to generate `Log4j2Plugins.dat`
+ // * `GraalVmProcessor` to generate a GraalVM reachability metadata file
annotationProcessor('org.apache.logging.log4j:log4j-core:2.24.1')
}</code></pre>
</div>
diff --git a/manual/scripts.html b/manual/scripts.html
index 080b428bbd..6b43241dae 100644
--- a/manual/scripts.html
+++ b/manual/scripts.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/simple-logger.html b/manual/simple-logger.html
index ae52614379..ac0cabff57 100644
--- a/manual/simple-logger.html
+++ b/manual/simple-logger.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/status-logger.html b/manual/status-logger.html
index 19c5f5e424..cad9cbb2c8 100644
--- a/manual/status-logger.html
+++ b/manual/status-logger.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/systemproperties.html b/manual/systemproperties.html
index 321a305e74..8db76b4447 100644
--- a/manual/systemproperties.html
+++ b/manual/systemproperties.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/manual/thread-context.html b/manual/thread-context.html
index c997e3b90a..83b4107ab1 100644
--- a/manual/thread-context.html
+++ b/manual/thread-context.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../migrate-from-slf4j.html">Migrating from
SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../graalvm.html">Building GraalVM native
images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/migrate-from-log4j1.html b/migrate-from-log4j1.html
index 9920206d28..08086aed3b 100644
--- a/migrate-from-log4j1.html
+++ b/migrate-from-log4j1.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/migrate-from-logback.html b/migrate-from-logback.html
index 1329c7c63c..0e5f2c3f82 100644
--- a/migrate-from-logback.html
+++ b/migrate-from-logback.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/migrate-from-slf4j.html b/migrate-from-slf4j.html
index 41d525be67..8279c4bc44 100644
--- a/migrate-from-slf4j.html
+++ b/migrate-from-slf4j.html
@@ -264,6 +264,9 @@
<li class="nav-item is-current-page" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/plugin-reference.html b/plugin-reference.html
index da0dfc2994..4d1a9e643e 100644
--- a/plugin-reference.html
+++ b/plugin-reference.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
diff --git a/release-notes.html b/release-notes.html
index fe79b3df7e..53c5516a15 100644
--- a/release-notes.html
+++ b/release-notes.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>
@@ -360,7 +363,7 @@
<p>Log4j Core and all its extension modules have been enriched with embedded
<a
href="https://www.graalvm.org/latest/reference-manual/native-image/metadata/">GraalVM
reachability metadata</a>.
This allows the generation of GraalVM native images out-of-the-box without any
additional steps.
-See our <a href="#graalvm.adoc" class="xref unresolved">GraalVM guide</a> for
details.</p>
+See our <a href="graalvm.html" class="xref page">GraalVM guide</a> for
details.</p>
</div>
</div>
<div class="sect2">
diff --git a/sitemap.xml b/sitemap.xml
index 058574242a..cfc0fecd14 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2,234 +2,238 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://logging.apache.org/log4j/2.x/components.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/development.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/download.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/faq.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
+</url>
+<url>
+<loc>https://logging.apache.org/log4j/2.x/graalvm.html</loc>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/hibernate.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/index.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/jakarta.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/javadoc.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/log4j-iostreams.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/log4j-jul.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/log4j-spring-boot.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/log4j-spring-cloud-config-client.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/log4j-to-jul.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/api.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders/database.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders/delegating.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders/file.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders/message-queue.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders/network.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders/rolling-file.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/architecture.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/async.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/compatibility.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/config-intro.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/configuration.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/customconfig.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/customloglevels.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/eventlogging.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/extending.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/filters.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/flowtracing.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/garbagefree.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/getting-started.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/implementation.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/index.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/installation.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/jmx.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/json-template-layout.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/layouts.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/logbuilder.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/lookups.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/markers.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/messages.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/pattern-layout.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/performance.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/plugins.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/scripts.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/simple-logger.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/status-logger.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/systemproperties.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/thread-context.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/migrate-from-log4j1.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/migrate-from-logback.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/migrate-from-slf4j.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/plugin-reference.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/release-notes.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/soa.html</loc>
-<lastmod>2024-10-09T13:57:53.420Z</lastmod>
+<lastmod>2024-10-09T19:48:25.509Z</lastmod>
</url>
</urlset>
diff --git a/soa.html b/soa.html
index 9a3a4f367f..935634d5bb 100644
--- a/soa.html
+++ b/soa.html
@@ -264,6 +264,9 @@
<li class="nav-item" data-depth="1">
<a class="nav-link" href="migrate-from-slf4j.html">Migrating from SLF4J</a>
</li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="graalvm.html">Building GraalVM native images</a>
+ </li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="hibernate.html">Integrating with Hibernate</a>
</li>