You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gi...@apache.org on 2024/09/22 09:14:03 UTC

(logging-log4j2) branch release/2.24.1-site-stg-out updated: Add website content generated from `35b8e024734dadfb69f50e04ad288814ed70f6ca`

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

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


The following commit(s) were added to refs/heads/release/2.24.1-site-stg-out by this push:
     new 5422fc6f26 Add website content generated from `35b8e024734dadfb69f50e04ad288814ed70f6ca`
5422fc6f26 is described below

commit 5422fc6f26773e331906415ef90b5df6d07d36aa
Author: ASF Logging Services RM <pr...@logging.apache.org>
AuthorDate: Sun Sep 22 09:13:50 2024 +0000

    Add website content generated from `35b8e024734dadfb69f50e04ad288814ed70f6ca`
---
 .htaccess                                          |    76 +
 404.html                                           |   119 +
 README.txt                                         |     1 -
 _/css/site.css                                     |     3 +
 _/css/vendor/tabs.css                              |   110 +
 _/font/roboto-cyrillic-400-italic.woff2            |   Bin 0 -> 10292 bytes
 _/font/roboto-cyrillic-400-normal.woff2            |   Bin 0 -> 9628 bytes
 _/font/roboto-cyrillic-500-italic.woff2            |   Bin 0 -> 10640 bytes
 _/font/roboto-cyrillic-500-normal.woff2            |   Bin 0 -> 9840 bytes
 _/font/roboto-latin-400-italic.woff                |   Bin 0 -> 22048 bytes
 _/font/roboto-latin-400-italic.woff2               |   Bin 0 -> 17368 bytes
 _/font/roboto-latin-400-normal.woff                |   Bin 0 -> 20344 bytes
 _/font/roboto-latin-400-normal.woff2               |   Bin 0 -> 15744 bytes
 _/font/roboto-latin-500-italic.woff                |   Bin 0 -> 22092 bytes
 _/font/roboto-latin-500-italic.woff2               |   Bin 0 -> 17336 bytes
 _/font/roboto-latin-500-normal.woff                |   Bin 0 -> 20544 bytes
 _/font/roboto-latin-500-normal.woff2               |   Bin 0 -> 15920 bytes
 _/font/roboto-mono-latin-400-normal.woff           |   Bin 0 -> 15160 bytes
 _/font/roboto-mono-latin-400-normal.woff2          |   Bin 0 -> 12312 bytes
 _/font/roboto-mono-latin-500-normal.woff           |   Bin 0 -> 15364 bytes
 _/font/roboto-mono-latin-500-normal.woff2          |   Bin 0 -> 12532 bytes
 _/img/back.svg                                     |     1 +
 _/img/caret.svg                                    |     1 +
 _/img/chevron.svg                                  |     1 +
 _/img/home-o.svg                                   |     1 +
 _/img/home.svg                                     |     1 +
 _/img/menu.svg                                     |     1 +
 _/img/octicons-16.svg                              |     1 +
 _/js/site.js                                       |     6 +
 _/js/vendor/highlight.js                           |     1 +
 _/js/vendor/tabs.js                                |   127 +
 _images/IntelliJ-IDEA-logo.png                     |   Bin 0 -> 4299 bytes
 _images/YourKitLogo.png                            |   Bin 0 -> 5554 bytes
 ...ag-01168003b98f120d2f0736e5172de8e1218f189e.svg |     1 +
 ...ag-0c23746e246efa4a462049e2adc4b0349185aa77.svg |     1 +
 ...ag-2158b7cc88b372c32a9592f8cdbc1cc926bb8b80.svg |     1 +
 ...ag-232cdf1d44336897239fa03f6521cc730f38f32d.svg |     1 +
 ...ag-35cc4e8101ffe76d0edc44ed334a6273018dc51b.svg |     1 +
 ...ag-3f8a04c810525cc09a5e7564abf3aa14ed1f7c81.svg |     1 +
 ...ag-4d55aeb99a0ae8707b4121b1f76e9544af16b3c4.svg |     1 +
 ...ag-581e854ee8ecdb00104bac5affda10a653d8f76d.svg |     1 +
 ...ag-58c484caf8cd616db4f1c7ed31b51c123b5859d4.svg |     1 +
 ...ag-5c97f284d82478c0499cab16fe90893de781b11f.svg |     1 +
 ...ag-5ffe377615be9b0375b26533bbf7b10507dc946b.svg |     1 +
 ...ag-63d449f3bcd24cfa522a41f6e2f545416de30322.svg |     1 +
 ...ag-73365a4d8197b5441a98fd1d661b07760da178be.svg |     1 +
 ...ag-768e5e02508ea736d8901892b519a6d3a7a770ab.svg |     1 +
 ...ag-77a13b00749af95e3ed0eefd605a73f25d70973c.svg |     1 +
 ...ag-7a08e5a79432e9299cc0d9671bd39677be5618e8.svg |     1 +
 ...ag-892fd9dbd9ea6bece55c1d4078ae1de2edd5c689.svg |     1 +
 ...ag-a15d9b3aaacbf863f81fe0dcb0ed21346b6c46ed.svg |     1 +
 ...ag-a51b68065f249459078382aa4c61888857f01b2c.svg |     1 +
 ...ag-d5122741a680d765fa3170a444015b615a1fdafd.svg |     1 +
 ...ag-fd71b342bbb89cd55a1ddb592976b9ac26b6348e.svg |     1 +
 _images/favicon.ico                                |   Bin 0 -> 1490 bytes
 _images/jmx-jconsole-mbeans.png                    |   Bin 0 -> 61770 bytes
 _images/logo-big-black.png                         |   Bin 0 -> 88078 bytes
 _images/logo-small-white.png                       |   Bin 0 -> 4492 bytes
 components.html                                    |  2451 ++
 development.html                                   |   576 +
 download.html                                      |   581 +
 faq.html                                           |   854 +
 hibernate.html                                     |   606 +
 index.html                                         |   483 +
 jakarta.html                                       |  1741 ++
 javadoc.html                                       |   421 +
 javadoc/log4j-api/allclasses-index.html            |   667 +
 javadoc/log4j-api/allpackages-index.html           |    92 +
 javadoc/log4j-api/constant-values.html             |   300 +
 javadoc/log4j-api/deprecated-list.html             |   256 +
 javadoc/log4j-api/element-list                     |     6 +
 javadoc/log4j-api/help-doc.html                    |   201 +
 javadoc/log4j-api/index-all.html                   |  7526 ++++++
 javadoc/log4j-api/index.html                       |    94 +
 javadoc/log4j-api/jquery-ui.overrides.css          |    35 +
 javadoc/log4j-api/legal/ADDITIONAL_LICENSE_INFO    |    37 +
 javadoc/log4j-api/legal/ASSEMBLY_EXCEPTION         |    27 +
 javadoc/log4j-api/legal/LICENSE                    |   347 +
 javadoc/log4j-api/legal/jquery.md                  |    72 +
 javadoc/log4j-api/legal/jqueryUI.md                |    49 +
 javadoc/log4j-api/member-search-index.js           |     1 +
 javadoc/log4j-api/module-search-index.js           |     1 +
 .../org/apache/logging/log4j/BridgeAware.html      |   139 +
 .../log4j/CloseableThreadContext.Instance.html     |   266 +
 .../logging/log4j/CloseableThreadContext.html      |   262 +
 .../org/apache/logging/log4j/EventLogger.html      |   205 +
 .../log4j-api/org/apache/logging/log4j/Level.html  |   681 +
 .../org/apache/logging/log4j/LogBuilder.html       |   767 +
 .../org/apache/logging/log4j/LogManager.html       |  1045 +
 .../log4j-api/org/apache/logging/log4j/Logger.html | 10386 ++++++++
 .../org/apache/logging/log4j/LoggingException.html |   197 +
 .../log4j-api/org/apache/logging/log4j/Marker.html |   322 +
 .../logging/log4j/MarkerManager.Log4jMarker.html   |   429 +
 .../org/apache/logging/log4j/MarkerManager.html    |   257 +
 .../logging/log4j/ThreadContext.ContextStack.html  |   275 +
 .../org/apache/logging/log4j/ThreadContext.html    |   710 +
 .../logging/log4j/class-use/BridgeAware.html       |    62 +
 .../class-use/CloseableThreadContext.Instance.html |   140 +
 .../log4j/class-use/CloseableThreadContext.html    |    62 +
 .../logging/log4j/class-use/EventLogger.html       |    62 +
 .../org/apache/logging/log4j/class-use/Level.html  |  2498 ++
 .../apache/logging/log4j/class-use/LogBuilder.html |   218 +
 .../apache/logging/log4j/class-use/LogManager.html |    62 +
 .../org/apache/logging/log4j/class-use/Logger.html |   270 +
 .../logging/log4j/class-use/LoggingException.html  |    62 +
 .../org/apache/logging/log4j/class-use/Marker.html |  4253 ++++
 .../log4j/class-use/MarkerManager.Log4jMarker.html |    62 +
 .../logging/log4j/class-use/MarkerManager.html     |    62 +
 .../class-use/ThreadContext.ContextStack.html      |   156 +
 .../logging/log4j/class-use/ThreadContext.html     |    62 +
 .../log4j/message/AbstractMessageFactory.html      |   705 +
 .../log4j/message/AsynchronouslyFormattable.html   |   121 +
 .../log4j/message/DefaultFlowMessageFactory.html   |   411 +
 .../apache/logging/log4j/message/EntryMessage.html |   110 +
 .../apache/logging/log4j/message/ExitMessage.html  |   110 +
 .../apache/logging/log4j/message/FlowMessage.html  |   169 +
 .../logging/log4j/message/FlowMessageFactory.html  |   273 +
 .../logging/log4j/message/FormattedMessage.html    |   484 +
 .../log4j/message/FormattedMessageFactory.html     |   685 +
 .../logging/log4j/message/LocalizedMessage.html    |   569 +
 .../log4j/message/LocalizedMessageFactory.html     |   299 +
 .../log4j/message/LoggerNameAwareMessage.html      |   157 +
 .../log4j/message/MapMessage.MapFormat.html        |   284 +
 .../apache/logging/log4j/message/MapMessage.html   |  1192 +
 .../org/apache/logging/log4j/message/Message.html  |   241 +
 .../log4j/message/MessageCollectionMessage.html    |   114 +
 .../logging/log4j/message/MessageFactory.html      |   202 +
 .../logging/log4j/message/MessageFactory2.html     |   566 +
 .../log4j/message/MessageFormatMessage.html        |   323 +
 .../log4j/message/MessageFormatMessageFactory.html |   684 +
 .../logging/log4j/message/MultiformatMessage.html  |   175 +
 .../logging/log4j/message/ObjectArrayMessage.html  |   294 +
 .../logging/log4j/message/ObjectMessage.html       |   325 +
 .../logging/log4j/message/ParameterConsumer.html   |   162 +
 .../logging/log4j/message/ParameterVisitable.html  |   160 +
 .../log4j/message/ParameterizedMessage.html        |   685 +
 .../log4j/message/ParameterizedMessageFactory.html |   726 +
 .../ParameterizedNoReferenceMessageFactory.html    |   252 +
 .../logging/log4j/message/ReusableMessage.html     |   224 +
 .../log4j/message/ReusableMessageFactory.html      |   767 +
 .../log4j/message/ReusableObjectMessage.html       |   407 +
 .../message/ReusableParameterizedMessage.html      |   619 +
 .../log4j/message/ReusableSimpleMessage.html       |   447 +
 .../logging/log4j/message/SimpleMessage.html       |   379 +
 .../log4j/message/SimpleMessageFactory.html        |   725 +
 .../log4j/message/StringFormattedMessage.html      |   333 +
 .../message/StringFormatterMessageFactory.html     |   725 +
 .../logging/log4j/message/StringMapMessage.html    |   237 +
 .../message/StructuredDataCollectionMessage.html   |   295 +
 .../logging/log4j/message/StructuredDataId.html    |   618 +
 .../message/StructuredDataMessage.Format.html      |   224 +
 .../log4j/message/StructuredDataMessage.html       |  1000 +
 .../ThreadDumpMessage.ThreadInfoFactory.html       |   137 +
 .../logging/log4j/message/ThreadDumpMessage.html   |   316 +
 .../logging/log4j/message/ThreadInformation.html   |   156 +
 .../logging/log4j/message/TimestampMessage.html    |   138 +
 .../message/class-use/AbstractMessageFactory.html  |   128 +
 .../class-use/AsynchronouslyFormattable.html       |   106 +
 .../class-use/DefaultFlowMessageFactory.html       |    62 +
 .../log4j/message/class-use/EntryMessage.html      |   278 +
 .../log4j/message/class-use/ExitMessage.html       |   132 +
 .../log4j/message/class-use/FlowMessage.html       |    96 +
 .../message/class-use/FlowMessageFactory.html      |   163 +
 .../log4j/message/class-use/FormattedMessage.html  |    62 +
 .../message/class-use/FormattedMessageFactory.html |    62 +
 .../log4j/message/class-use/LocalizedMessage.html  |    62 +
 .../message/class-use/LocalizedMessageFactory.html |    62 +
 .../message/class-use/LoggerNameAwareMessage.html  |    92 +
 .../message/class-use/MapMessage.MapFormat.html    |   102 +
 .../log4j/message/class-use/MapMessage.html        |   107 +
 .../logging/log4j/message/class-use/Message.html   |  1764 ++
 .../class-use/MessageCollectionMessage.html        |    91 +
 .../log4j/message/class-use/MessageFactory.html    |   453 +
 .../log4j/message/class-use/MessageFactory2.html   |   160 +
 .../message/class-use/MessageFormatMessage.html    |    62 +
 .../class-use/MessageFormatMessageFactory.html     |    62 +
 .../message/class-use/MultiformatMessage.html      |   121 +
 .../message/class-use/ObjectArrayMessage.html      |    62 +
 .../log4j/message/class-use/ObjectMessage.html     |    62 +
 .../log4j/message/class-use/ParameterConsumer.html |   105 +
 .../message/class-use/ParameterVisitable.html      |   101 +
 .../message/class-use/ParameterizedMessage.html    |    62 +
 .../class-use/ParameterizedMessageFactory.html     |    91 +
 .../ParameterizedNoReferenceMessageFactory.html    |    91 +
 .../log4j/message/class-use/ReusableMessage.html   |   101 +
 .../message/class-use/ReusableMessageFactory.html  |    91 +
 .../message/class-use/ReusableObjectMessage.html   |    62 +
 .../class-use/ReusableParameterizedMessage.html    |   175 +
 .../message/class-use/ReusableSimpleMessage.html   |    62 +
 .../log4j/message/class-use/SimpleMessage.html     |    62 +
 .../message/class-use/SimpleMessageFactory.html    |    91 +
 .../message/class-use/StringFormattedMessage.html  |    62 +
 .../class-use/StringFormatterMessageFactory.html   |    91 +
 .../log4j/message/class-use/StringMapMessage.html  |    91 +
 .../class-use/StructuredDataCollectionMessage.html |    62 +
 .../log4j/message/class-use/StructuredDataId.html  |   200 +
 .../class-use/StructuredDataMessage.Format.html    |   116 +
 .../message/class-use/StructuredDataMessage.html   |   135 +
 .../ThreadDumpMessage.ThreadInfoFactory.html       |    62 +
 .../log4j/message/class-use/ThreadDumpMessage.html |    62 +
 .../log4j/message/class-use/ThreadInformation.html |    89 +
 .../log4j/message/class-use/TimestampMessage.html  |    62 +
 .../logging/log4j/message/package-summary.html     |   322 +
 .../apache/logging/log4j/message/package-tree.html |   173 +
 .../apache/logging/log4j/message/package-use.html  |   337 +
 .../org/apache/logging/log4j/package-summary.html  |   201 +
 .../org/apache/logging/log4j/package-tree.html     |   119 +
 .../org/apache/logging/log4j/package-use.html      |   207 +
 .../apache/logging/log4j/simple/SimpleLogger.html  |   845 +
 .../logging/log4j/simple/SimpleLoggerContext.html  |   383 +
 .../log4j/simple/SimpleLoggerContextFactory.html   |   304 +
 .../log4j/simple/class-use/SimpleLogger.html       |    62 +
 .../simple/class-use/SimpleLoggerContext.html      |    62 +
 .../class-use/SimpleLoggerContextFactory.html      |    91 +
 .../logging/log4j/simple/package-summary.html      |   133 +
 .../apache/logging/log4j/simple/package-tree.html  |    82 +
 .../apache/logging/log4j/simple/package-use.html   |    88 +
 .../apache/logging/log4j/spi/AbstractLogger.html   | 13029 ++++++++++
 .../logging/log4j/spi/AbstractLoggerAdapter.html   |   343 +
 .../log4j/spi/CleanableThreadContextMap.html       |   168 +
 .../org/apache/logging/log4j/spi/CopyOnWrite.html  |    99 +
 .../logging/log4j/spi/DefaultThreadContextMap.html |   592 +
 .../log4j/spi/DefaultThreadContextStack.html       |   579 +
 .../apache/logging/log4j/spi/ExtendedLogger.html   |  1411 ++
 .../logging/log4j/spi/ExtendedLoggerWrapper.html   |   840 +
 .../logging/log4j/spi/LocationAwareLogger.html     |   144 +
 .../apache/logging/log4j/spi/LoggerAdapter.html    |   161 +
 .../apache/logging/log4j/spi/LoggerContext.html    |   448 +
 .../logging/log4j/spi/LoggerContextFactory.html    |   279 +
 .../apache/logging/log4j/spi/LoggerContextKey.html |   206 +
 .../log4j/spi/LoggerContextShutdownAware.html      |   135 +
 .../log4j/spi/LoggerContextShutdownEnabled.html    |   139 +
 .../spi/LoggerRegistry.ConcurrentMapFactory.html   |   211 +
 .../log4j/spi/LoggerRegistry.MapFactory.html       |   164 +
 .../log4j/spi/LoggerRegistry.WeakMapFactory.html   |   211 +
 .../apache/logging/log4j/spi/LoggerRegistry.html   |   359 +
 .../logging/log4j/spi/MessageFactory2Adapter.html  |   702 +
 .../log4j/spi/MutableThreadContextStack.html       |   608 +
 .../logging/log4j/spi/NoOpThreadContextMap.html    |   367 +
 .../logging/log4j/spi/ObjectThreadContextMap.html  |   201 +
 .../org/apache/logging/log4j/spi/Provider.html     |   574 +
 .../log4j/spi/ReadOnlyThreadContextMap.html        |   264 +
 .../apache/logging/log4j/spi/StandardLevel.html    |   320 +
 .../org/apache/logging/log4j/spi/Terminable.html   |   140 +
 .../apache/logging/log4j/spi/ThreadContextMap.html |   275 +
 .../logging/log4j/spi/ThreadContextMap2.html       |   187 +
 .../logging/log4j/spi/ThreadContextMapFactory.html |   175 +
 .../logging/log4j/spi/ThreadContextStack.html      |   113 +
 .../log4j/spi/class-use/AbstractLogger.html        |   132 +
 .../log4j/spi/class-use/AbstractLoggerAdapter.html |    62 +
 .../spi/class-use/CleanableThreadContextMap.html   |    93 +
 .../logging/log4j/spi/class-use/CopyOnWrite.html   |    62 +
 .../spi/class-use/DefaultThreadContextMap.html     |    62 +
 .../spi/class-use/DefaultThreadContextStack.html   |    62 +
 .../log4j/spi/class-use/ExtendedLogger.html        |   251 +
 .../log4j/spi/class-use/ExtendedLoggerWrapper.html |    62 +
 .../log4j/spi/class-use/LocationAwareLogger.html   |   137 +
 .../logging/log4j/spi/class-use/LoggerAdapter.html |    92 +
 .../logging/log4j/spi/class-use/LoggerContext.html |   320 +
 .../log4j/spi/class-use/LoggerContextFactory.html  |   169 +
 .../log4j/spi/class-use/LoggerContextKey.html      |    62 +
 .../spi/class-use/LoggerContextShutdownAware.html  |   110 +
 .../class-use/LoggerContextShutdownEnabled.html    |    62 +
 .../LoggerRegistry.ConcurrentMapFactory.html       |    62 +
 .../spi/class-use/LoggerRegistry.MapFactory.html   |   108 +
 .../class-use/LoggerRegistry.WeakMapFactory.html   |    62 +
 .../log4j/spi/class-use/LoggerRegistry.html        |   112 +
 .../spi/class-use/MessageFactory2Adapter.html      |    62 +
 .../spi/class-use/MutableThreadContextStack.html   |    62 +
 .../log4j/spi/class-use/NoOpThreadContextMap.html  |    62 +
 .../spi/class-use/ObjectThreadContextMap.html      |    62 +
 .../logging/log4j/spi/class-use/Provider.html      |   107 +
 .../spi/class-use/ReadOnlyThreadContextMap.html    |    93 +
 .../logging/log4j/spi/class-use/StandardLevel.html |   123 +
 .../logging/log4j/spi/class-use/Terminable.html    |    62 +
 .../log4j/spi/class-use/ThreadContextMap.html      |   153 +
 .../log4j/spi/class-use/ThreadContextMap2.html     |    99 +
 .../spi/class-use/ThreadContextMapFactory.html     |    62 +
 .../log4j/spi/class-use/ThreadContextStack.html    |   130 +
 .../apache/logging/log4j/spi/package-summary.html  |   256 +
 .../org/apache/logging/log4j/spi/package-tree.html |   169 +
 .../org/apache/logging/log4j/spi/package-use.html  |   257 +
 .../log4j/status/StatusConsoleListener.html        |   308 +
 .../apache/logging/log4j/status/StatusData.html    |   339 +
 .../logging/log4j/status/StatusListener.html       |   165 +
 .../logging/log4j/status/StatusLogger.Config.html  |   194 +
 .../apache/logging/log4j/status/StatusLogger.html  |  1260 +
 .../status/class-use/StatusConsoleListener.html    |   105 +
 .../logging/log4j/status/class-use/StatusData.html |   109 +
 .../log4j/status/class-use/StatusListener.html     |   118 +
 .../status/class-use/StatusLogger.Config.html      |   105 +
 .../log4j/status/class-use/StatusLogger.html       |   102 +
 .../logging/log4j/status/package-summary.html      |   147 +
 .../apache/logging/log4j/status/package-tree.html  |   102 +
 .../apache/logging/log4j/status/package-use.html   |   104 +
 .../org/apache/logging/log4j/util/Activator.html   |   211 +
 .../org/apache/logging/log4j/util/Base64Util.html  |   143 +
 .../org/apache/logging/log4j/util/BiConsumer.html  |   170 +
 .../org/apache/logging/log4j/util/Cast.html        |   150 +
 .../org/apache/logging/log4j/util/Chars.html       |   345 +
 .../org/apache/logging/log4j/util/Constants.html   |   264 +
 .../apache/logging/log4j/util/EnglishEnums.html    |   194 +
 .../log4j/util/EnvironmentPropertySource.html      |   321 +
 .../log4j/util/FilteredObjectInputStream.html      |   272 +
 .../log4j/util/IndexedReadOnlyStringMap.html       |   217 +
 .../logging/log4j/util/IndexedStringMap.html       |   130 +
 .../org/apache/logging/log4j/util/InternalApi.html |    90 +
 .../logging/log4j/util/InternalException.html      |   195 +
 .../org/apache/logging/log4j/util/LambdaUtil.html  |   209 +
 .../org/apache/logging/log4j/util/Lazy.html        |   249 +
 .../org/apache/logging/log4j/util/LazyBoolean.html |   190 +
 .../org/apache/logging/log4j/util/LoaderUtil.html  |   619 +
 .../apache/logging/log4j/util/MessageSupplier.html |   165 +
 .../util/MultiFormatStringBuilderFormattable.html  |   168 +
 .../logging/log4j/util/OsgiServiceLocator.html     |   187 +
 .../logging/log4j/util/PerformanceSensitive.html   |   135 +
 .../apache/logging/log4j/util/ProcessIdUtil.html   |   205 +
 .../log4j/util/PropertiesPropertySource.html       |   310 +
 .../apache/logging/log4j/util/PropertiesUtil.html  |   754 +
 .../log4j/util/PropertyFilePropertySource.html     |   165 +
 .../log4j/util/PropertySource.Comparator.html      |   192 +
 .../logging/log4j/util/PropertySource.Util.html    |   175 +
 .../apache/logging/log4j/util/PropertySource.html  |   259 +
 .../logging/log4j/util/ProviderActivator.html      |   231 +
 .../apache/logging/log4j/util/ProviderUtil.html    |   174 +
 .../logging/log4j/util/ReadOnlyStringMap.html      |   293 +
 .../logging/log4j/util/ServiceLoaderUtil.html      |   174 +
 .../logging/log4j/util/SortedArrayStringMap.html   |   631 +
 .../apache/logging/log4j/util/StackLocator.html    |   256 +
 .../logging/log4j/util/StackLocatorUtil.html       |   258 +
 .../log4j/util/StringBuilderFormattable.html       |   151 +
 .../apache/logging/log4j/util/StringBuilders.html  |   341 +
 .../org/apache/logging/log4j/util/StringMap.html   |   305 +
 .../org/apache/logging/log4j/util/Strings.html     |   576 +
 .../org/apache/logging/log4j/util/Supplier.html    |   170 +
 .../log4j/util/SystemPropertiesPropertySource.html |   330 +
 .../apache/logging/log4j/util/Timer.Status.html    |   225 +
 .../org/apache/logging/log4j/util/Timer.html       |   395 +
 .../org/apache/logging/log4j/util/TriConsumer.html |   159 +
 .../org/apache/logging/log4j/util/Unbox.html       |   306 +
 .../logging/log4j/util/class-use/Activator.html    |    62 +
 .../logging/log4j/util/class-use/Base64Util.html   |    62 +
 .../logging/log4j/util/class-use/BiConsumer.html   |   149 +
 .../apache/logging/log4j/util/class-use/Cast.html  |    62 +
 .../apache/logging/log4j/util/class-use/Chars.html |    62 +
 .../logging/log4j/util/class-use/Constants.html    |    62 +
 .../logging/log4j/util/class-use/EnglishEnums.html |    62 +
 .../util/class-use/EnvironmentPropertySource.html  |    62 +
 .../util/class-use/FilteredObjectInputStream.html  |    62 +
 .../util/class-use/IndexedReadOnlyStringMap.html   |   123 +
 .../log4j/util/class-use/IndexedStringMap.html     |    92 +
 .../logging/log4j/util/class-use/InternalApi.html  |   152 +
 .../log4j/util/class-use/InternalException.html    |    62 +
 .../logging/log4j/util/class-use/LambdaUtil.html   |    62 +
 .../apache/logging/log4j/util/class-use/Lazy.html  |   111 +
 .../logging/log4j/util/class-use/LazyBoolean.html  |    62 +
 .../logging/log4j/util/class-use/LoaderUtil.html   |    62 +
 .../log4j/util/class-use/MessageSupplier.html      |   471 +
 .../MultiFormatStringBuilderFormattable.html       |   101 +
 .../log4j/util/class-use/OsgiServiceLocator.html   |    62 +
 .../log4j/util/class-use/PerformanceSensitive.html |   266 +
 .../log4j/util/class-use/ProcessIdUtil.html        |    62 +
 .../util/class-use/PropertiesPropertySource.html   |    91 +
 .../log4j/util/class-use/PropertiesUtil.html       |   118 +
 .../util/class-use/PropertyFilePropertySource.html |    62 +
 .../util/class-use/PropertySource.Comparator.html  |    62 +
 .../log4j/util/class-use/PropertySource.Util.html  |    62 +
 .../log4j/util/class-use/PropertySource.html       |   142 +
 .../log4j/util/class-use/ProviderActivator.html    |    62 +
 .../logging/log4j/util/class-use/ProviderUtil.html |    62 +
 .../log4j/util/class-use/ReadOnlyStringMap.html    |   157 +
 .../log4j/util/class-use/ServiceLoaderUtil.html    |    62 +
 .../log4j/util/class-use/SortedArrayStringMap.html |    62 +
 .../logging/log4j/util/class-use/StackLocator.html |    91 +
 .../log4j/util/class-use/StackLocatorUtil.html     |    62 +
 .../util/class-use/StringBuilderFormattable.html   |   236 +
 .../log4j/util/class-use/StringBuilders.html       |    62 +
 .../logging/log4j/util/class-use/StringMap.html    |   129 +
 .../logging/log4j/util/class-use/Strings.html      |    62 +
 .../logging/log4j/util/class-use/Supplier.html     |   737 +
 .../class-use/SystemPropertiesPropertySource.html  |    62 +
 .../logging/log4j/util/class-use/Timer.Status.html |   103 +
 .../apache/logging/log4j/util/class-use/Timer.html |    62 +
 .../logging/log4j/util/class-use/TriConsumer.html  |   143 +
 .../apache/logging/log4j/util/class-use/Unbox.html |    62 +
 .../apache/logging/log4j/util/package-summary.html |   306 +
 .../apache/logging/log4j/util/package-tree.html    |   203 +
 .../org/apache/logging/log4j/util/package-use.html |   282 +
 javadoc/log4j-api/overview-summary.html            |    25 +
 javadoc/log4j-api/overview-tree.html               |   363 +
 javadoc/log4j-api/package-search-index.js          |     1 +
 javadoc/log4j-api/resources/glass.png              |   Bin 0 -> 499 bytes
 javadoc/log4j-api/resources/x.png                  |   Bin 0 -> 394 bytes
 javadoc/log4j-api/script-dir/jquery-3.6.1.min.js   |     2 +
 javadoc/log4j-api/script-dir/jquery-ui.min.css     |     6 +
 javadoc/log4j-api/script-dir/jquery-ui.min.js      |     6 +
 javadoc/log4j-api/script.js                        |   132 +
 javadoc/log4j-api/search.js                        |   354 +
 javadoc/log4j-api/serialized-form.html             |  1428 ++
 javadoc/log4j-api/stylesheet.css                   |   869 +
 javadoc/log4j-api/tag-search-index.js              |     1 +
 javadoc/log4j-api/type-search-index.js             |     1 +
 javadoc/log4j-core/allclasses-index.html           |  2953 +++
 javadoc/log4j-core/allpackages-index.html          |   259 +
 javadoc/log4j-core/constant-values.html            |  1403 ++
 javadoc/log4j-core/deprecated-list.html            |   787 +
 javadoc/log4j-core/element-list                    |    49 +
 javadoc/log4j-core/help-doc.html                   |   201 +
 javadoc/log4j-core/index-all.html                  | 18783 +++++++++++++++
 javadoc/log4j-core/index.html                      |   261 +
 javadoc/log4j-core/jquery-ui.overrides.css         |    35 +
 javadoc/log4j-core/legal/ADDITIONAL_LICENSE_INFO   |    37 +
 javadoc/log4j-core/legal/ASSEMBLY_EXCEPTION        |    27 +
 javadoc/log4j-core/legal/LICENSE                   |   347 +
 javadoc/log4j-core/legal/jquery.md                 |    72 +
 javadoc/log4j-core/legal/jqueryUI.md               |    49 +
 javadoc/log4j-core/member-search-index.js          |     1 +
 javadoc/log4j-core/module-search-index.js          |     1 +
 .../logging/log4j/core/AbstractLifeCycle.html      |   459 +
 .../logging/log4j/core/AbstractLogEvent.html       |   644 +
 .../org/apache/logging/log4j/core/Appender.html    |   310 +
 .../logging/log4j/core/ContextDataInjector.html    |   267 +
 .../org/apache/logging/log4j/core/Core.html        |   169 +
 .../log4j/core/DefaultLoggerContextAccessor.html   |   205 +
 .../apache/logging/log4j/core/ErrorHandler.html    |   185 +
 .../apache/logging/log4j/core/Filter.Result.html   |   274 +
 .../org/apache/logging/log4j/core/Filter.html      |   816 +
 .../org/apache/logging/log4j/core/Layout.html      |   302 +
 .../apache/logging/log4j/core/LifeCycle.State.html |   268 +
 .../org/apache/logging/log4j/core/LifeCycle.html   |   222 +
 .../org/apache/logging/log4j/core/LifeCycle2.html  |   174 +
 .../org/apache/logging/log4j/core/LogEvent.html    |   565 +
 .../logging/log4j/core/LogEventListener.html       |   201 +
 .../logging/log4j/core/Logger.LoggerProxy.html     |   191 +
 .../logging/log4j/core/Logger.PrivateConfig.html   |   247 +
 .../org/apache/logging/log4j/core/Logger.html      |  1056 +
 .../apache/logging/log4j/core/LoggerContext.html   |  1031 +
 .../logging/log4j/core/LoggerContextAccessor.html  |   134 +
 .../apache/logging/log4j/core/StringLayout.html    |   161 +
 .../org/apache/logging/log4j/core/Version.html     |   172 +
 .../core/appender/AbstractAppender.Builder.html    |   339 +
 .../log4j/core/appender/AbstractAppender.html      |   501 +
 .../appender/AbstractFileAppender.Builder.html     |   340 +
 .../log4j/core/appender/AbstractFileAppender.html  |   229 +
 .../AbstractManager.AbstractFactoryData.html       |   189 +
 .../log4j/core/appender/AbstractManager.html       |   534 +
 .../AbstractOutputStreamAppender.Builder.html      |   270 +
 .../appender/AbstractOutputStreamAppender.html     |   417 +
 .../core/appender/AbstractWriterAppender.html      |   392 +
 .../core/appender/AppenderLoggingException.html    |   252 +
 .../log4j/core/appender/AppenderSet.Builder.html   |   235 +
 .../logging/log4j/core/appender/AppenderSet.html   |   168 +
 .../log4j/core/appender/AsyncAppender.Builder.html |   281 +
 .../logging/log4j/core/appender/AsyncAppender.html |   464 +
 .../core/appender/ConfigurationFactoryData.html    |   212 +
 .../core/appender/ConsoleAppender.Builder.html     |   233 +
 .../core/appender/ConsoleAppender.Target.html      |   244 +
 .../log4j/core/appender/ConsoleAppender.html       |   347 +
 .../log4j/core/appender/CountingNoOpAppender.html  |   249 +
 .../log4j/core/appender/DefaultErrorHandler.html   |   235 +
 .../log4j/core/appender/FailoverAppender.html      |   273 +
 .../log4j/core/appender/FailoversPlugin.html       |   150 +
 .../log4j/core/appender/FileAppender.Builder.html  |   368 +
 .../logging/log4j/core/appender/FileAppender.html  |   339 +
 .../logging/log4j/core/appender/FileManager.html   |   645 +
 .../log4j/core/appender/HttpAppender.Builder.html  |   327 +
 .../logging/log4j/core/appender/HttpAppender.html  |   277 +
 .../logging/log4j/core/appender/HttpManager.html   |   225 +
 .../core/appender/HttpURLConnectionManager.html    |   222 +
 .../log4j/core/appender/ManagerFactory.html        |   155 +
 .../appender/MemoryMappedFileAppender.Builder.html |   251 +
 .../core/appender/MemoryMappedFileAppender.html    |   323 +
 .../core/appender/MemoryMappedFileManager.html     |   531 +
 .../logging/log4j/core/appender/NullAppender.html  |   240 +
 .../appender/OutputStreamAppender.Builder.html     |   224 +
 .../log4j/core/appender/OutputStreamAppender.html  |   242 +
 .../log4j/core/appender/OutputStreamManager.html   |   721 +
 .../appender/RandomAccessFileAppender.Builder.html |   242 +
 .../core/appender/RandomAccessFileAppender.html    |   328 +
 .../core/appender/RandomAccessFileManager.html     |   395 +
 .../core/appender/RollingFileAppender.Builder.html |   426 +
 .../log4j/core/appender/RollingFileAppender.html   |   407 +
 .../RollingRandomAccessFileAppender.Builder.html   |   291 +
 .../appender/RollingRandomAccessFileAppender.html  |   367 +
 .../appender/ScriptAppenderSelector.Builder.html   |   259 +
 .../core/appender/ScriptAppenderSelector.html      |   214 +
 .../log4j/core/appender/SmtpAppender.Builder.html  |   410 +
 .../logging/log4j/core/appender/SmtpAppender.html  |   342 +
 .../appender/SocketAppender.AbstractBuilder.html   |   471 +
 .../core/appender/SocketAppender.Builder.html      |   211 +
 .../log4j/core/appender/SocketAppender.html        |   526 +
 .../core/appender/SyslogAppender.Builder.html      |   546 +
 .../log4j/core/appender/SyslogAppender.html        |   431 +
 .../log4j/core/appender/TlsSyslogFrame.html        |   211 +
 .../core/appender/WriterAppender.Builder.html      |   215 +
 .../log4j/core/appender/WriterAppender.html        |   242 +
 .../logging/log4j/core/appender/WriterManager.html |   347 +
 .../class-use/AbstractAppender.Builder.html        |   279 +
 .../core/appender/class-use/AbstractAppender.html  |   350 +
 .../class-use/AbstractFileAppender.Builder.html    |    91 +
 .../appender/class-use/AbstractFileAppender.html   |    62 +
 .../AbstractManager.AbstractFactoryData.html       |    93 +
 .../core/appender/class-use/AbstractManager.html   |   347 +
 .../AbstractOutputStreamAppender.Builder.html      |   148 +
 .../class-use/AbstractOutputStreamAppender.html    |   137 +
 .../appender/class-use/AbstractWriterAppender.html |    91 +
 .../class-use/AppenderLoggingException.html        |    92 +
 .../appender/class-use/AppenderSet.Builder.html    |    95 +
 .../log4j/core/appender/class-use/AppenderSet.html |   101 +
 .../appender/class-use/AsyncAppender.Builder.html  |   128 +
 .../core/appender/class-use/AsyncAppender.html     |   146 +
 .../class-use/ConfigurationFactoryData.html        |    62 +
 .../class-use/ConsoleAppender.Builder.html         |   100 +
 .../appender/class-use/ConsoleAppender.Target.html |   122 +
 .../core/appender/class-use/ConsoleAppender.html   |   117 +
 .../appender/class-use/CountingNoOpAppender.html   |    91 +
 .../appender/class-use/DefaultErrorHandler.html    |    62 +
 .../core/appender/class-use/FailoverAppender.html  |    97 +
 .../core/appender/class-use/FailoversPlugin.html   |    62 +
 .../appender/class-use/FileAppender.Builder.html   |   119 +
 .../core/appender/class-use/FileAppender.html      |   108 +
 .../log4j/core/appender/class-use/FileManager.html |   128 +
 .../appender/class-use/HttpAppender.Builder.html   |   100 +
 .../core/appender/class-use/HttpAppender.html      |    89 +
 .../log4j/core/appender/class-use/HttpManager.html |    89 +
 .../class-use/HttpURLConnectionManager.html        |    62 +
 .../core/appender/class-use/ManagerFactory.html    |   167 +
 .../MemoryMappedFileAppender.Builder.html          |   117 +
 .../class-use/MemoryMappedFileAppender.html        |   106 +
 .../class-use/MemoryMappedFileManager.html         |    96 +
 .../core/appender/class-use/NullAppender.html      |    89 +
 .../class-use/OutputStreamAppender.Builder.html    |   100 +
 .../appender/class-use/OutputStreamAppender.html   |    99 +
 .../appender/class-use/OutputStreamManager.html    |   205 +
 .../RandomAccessFileAppender.Builder.html          |   119 +
 .../class-use/RandomAccessFileAppender.html        |   106 +
 .../class-use/RandomAccessFileManager.html         |    97 +
 .../class-use/RollingFileAppender.Builder.html     |   123 +
 .../appender/class-use/RollingFileAppender.html    |   110 +
 .../RollingRandomAccessFileAppender.Builder.html   |   118 +
 .../class-use/RollingRandomAccessFileAppender.html |   109 +
 .../class-use/ScriptAppenderSelector.Builder.html  |   101 +
 .../appender/class-use/ScriptAppenderSelector.html |    62 +
 .../appender/class-use/SmtpAppender.Builder.html   |   169 +
 .../core/appender/class-use/SmtpAppender.html      |   113 +
 .../class-use/SocketAppender.AbstractBuilder.html  |   105 +
 .../appender/class-use/SocketAppender.Builder.html |    89 +
 .../core/appender/class-use/SocketAppender.html    |   140 +
 .../appender/class-use/SyslogAppender.Builder.html |   135 +
 .../core/appender/class-use/SyslogAppender.html    |   126 +
 .../core/appender/class-use/TlsSyslogFrame.html    |    62 +
 .../appender/class-use/WriterAppender.Builder.html |   100 +
 .../core/appender/class-use/WriterAppender.html    |    99 +
 .../core/appender/class-use/WriterManager.html     |   117 +
 .../db/AbstractDatabaseAppender.Builder.html       |   150 +
 .../core/appender/db/AbstractDatabaseAppender.html |   457 +
 ...bstractDatabaseManager.AbstractFactoryData.html |   236 +
 .../core/appender/db/AbstractDatabaseManager.html  |   598 +
 .../core/appender/db/ColumnMapping.Builder.html    |   349 +
 .../log4j/core/appender/db/ColumnMapping.html      |   305 +
 .../appender/db/DbAppenderLoggingException.html    |   212 +
 .../AbstractDatabaseAppender.Builder.html          |   108 +
 .../db/class-use/AbstractDatabaseAppender.html     |   111 +
 ...bstractDatabaseManager.AbstractFactoryData.html |    96 +
 .../db/class-use/AbstractDatabaseManager.html      |   147 +
 .../db/class-use/ColumnMapping.Builder.html        |   133 +
 .../core/appender/db/class-use/ColumnMapping.html  |   160 +
 .../db/class-use/DbAppenderLoggingException.html   |    62 +
 .../appender/db/jdbc/AbstractConnectionSource.html |   170 +
 ...tractDriverManagerConnectionSource.Builder.html |   337 +
 .../AbstractDriverManagerConnectionSource.html     |   374 +
 .../appender/db/jdbc/ColumnConfig.Builder.html     |   302 +
 .../log4j/core/appender/db/jdbc/ColumnConfig.html  |   278 +
 .../core/appender/db/jdbc/ConnectionSource.html    |   182 +
 .../db/jdbc/DataSourceConnectionSource.html        |   227 +
 .../DriverManagerConnectionSource.Builder.html     |   205 +
 .../db/jdbc/DriverManagerConnectionSource.html     |   233 +
 .../db/jdbc/FactoryMethodConnectionSource.html     |   235 +
 .../appender/db/jdbc/JdbcAppender.Builder.html     |   326 +
 .../log4j/core/appender/db/jdbc/JdbcAppender.html  |   269 +
 .../core/appender/db/jdbc/JdbcDatabaseManager.html |   493 +
 .../jdbc/class-use/AbstractConnectionSource.html   |   109 +
 ...tractDriverManagerConnectionSource.Builder.html |   102 +
 .../AbstractDriverManagerConnectionSource.html     |    92 +
 .../db/jdbc/class-use/ColumnConfig.Builder.html    |   125 +
 .../appender/db/jdbc/class-use/ColumnConfig.html   |   179 +
 .../db/jdbc/class-use/ConnectionSource.html        |   198 +
 .../jdbc/class-use/DataSourceConnectionSource.html |    91 +
 .../DriverManagerConnectionSource.Builder.html     |   100 +
 .../class-use/DriverManagerConnectionSource.html   |    89 +
 .../class-use/FactoryMethodConnectionSource.html   |    92 +
 .../db/jdbc/class-use/JdbcAppender.Builder.html    |   111 +
 .../appender/db/jdbc/class-use/JdbcAppender.html   |   102 +
 .../db/jdbc/class-use/JdbcDatabaseManager.html     |   139 +
 .../core/appender/db/jdbc/package-summary.html     |   160 +
 .../log4j/core/appender/db/jdbc/package-tree.html  |   142 +
 .../log4j/core/appender/db/jdbc/package-use.html   |   133 +
 .../log4j/core/appender/db/package-summary.html    |   161 +
 .../log4j/core/appender/db/package-tree.html       |   130 +
 .../log4j/core/appender/db/package-use.html        |   152 +
 .../core/appender/mom/JmsAppender.Builder.html     |   364 +
 .../log4j/core/appender/mom/JmsAppender.html       |   328 +
 .../mom/JmsManager.JmsManagerConfiguration.html    |   225 +
 .../log4j/core/appender/mom/JmsManager.html        |   321 +
 .../mom/class-use/JmsAppender.Builder.html         |   148 +
 .../core/appender/mom/class-use/JmsAppender.html   |    89 +
 .../JmsManager.JmsManagerConfiguration.html        |    89 +
 .../core/appender/mom/class-use/JmsManager.html    |   137 +
 .../core/appender/mom/jeromq/JeroMqAppender.html   |   322 +
 .../core/appender/mom/jeromq/JeroMqManager.html    |   326 +
 .../mom/jeromq/class-use/JeroMqAppender.html       |   113 +
 .../mom/jeromq/class-use/JeroMqManager.html        |   110 +
 .../core/appender/mom/jeromq/package-summary.html  |   119 +
 .../core/appender/mom/jeromq/package-tree.html     |    93 +
 .../core/appender/mom/jeromq/package-use.html      |    92 +
 .../mom/kafka/DefaultKafkaProducerFactory.html     |   181 +
 .../appender/mom/kafka/KafkaAppender.Builder.html  |   295 +
 .../core/appender/mom/kafka/KafkaAppender.html     |   308 +
 .../core/appender/mom/kafka/KafkaManager.html      |   331 +
 .../appender/mom/kafka/KafkaProducerFactory.html   |   144 +
 .../class-use/DefaultKafkaProducerFactory.html     |    62 +
 .../mom/kafka/class-use/KafkaAppender.Builder.html |   102 +
 .../mom/kafka/class-use/KafkaAppender.html         |   101 +
 .../appender/mom/kafka/class-use/KafkaManager.html |    96 +
 .../mom/kafka/class-use/KafkaProducerFactory.html  |    91 +
 .../core/appender/mom/kafka/package-summary.html   |   135 +
 .../core/appender/mom/kafka/package-tree.html      |   109 +
 .../log4j/core/appender/mom/kafka/package-use.html |    98 +
 .../log4j/core/appender/mom/package-summary.html   |   148 +
 .../log4j/core/appender/mom/package-tree.html      |   103 +
 .../log4j/core/appender/mom/package-use.html       |    96 +
 .../appender/nosql/AbstractNoSqlConnection.html    |   226 +
 .../core/appender/nosql/DefaultNoSqlObject.html    |   272 +
 .../core/appender/nosql/NoSqlAppender.Builder.html |   238 +
 .../log4j/core/appender/nosql/NoSqlAppender.html   |   272 +
 .../log4j/core/appender/nosql/NoSqlConnection.html |   245 +
 .../core/appender/nosql/NoSqlDatabaseManager.html  |   330 +
 .../log4j/core/appender/nosql/NoSqlObject.html     |   221 +
 .../log4j/core/appender/nosql/NoSqlProvider.html   |   174 +
 .../nosql/class-use/AbstractNoSqlConnection.html   |    62 +
 .../nosql/class-use/DefaultNoSqlObject.html        |    62 +
 .../nosql/class-use/NoSqlAppender.Builder.html     |   100 +
 .../appender/nosql/class-use/NoSqlAppender.html    |   100 +
 .../appender/nosql/class-use/NoSqlConnection.html  |   103 +
 .../nosql/class-use/NoSqlDatabaseManager.html      |   104 +
 .../core/appender/nosql/class-use/NoSqlObject.html |   156 +
 .../appender/nosql/class-use/NoSqlProvider.html    |   120 +
 .../log4j/core/appender/nosql/package-summary.html |   167 +
 .../log4j/core/appender/nosql/package-tree.html    |   128 +
 .../log4j/core/appender/nosql/package-use.html     |   109 +
 .../log4j/core/appender/package-summary.html       |   355 +
 .../logging/log4j/core/appender/package-tree.html  |   208 +
 .../logging/log4j/core/appender/package-use.html   |   556 +
 .../rewrite/LoggerNameLevelRewritePolicy.html      |   188 +
 .../appender/rewrite/MapRewritePolicy.Mode.html    |   225 +
 .../core/appender/rewrite/MapRewritePolicy.html    |   245 +
 .../appender/rewrite/PropertiesRewritePolicy.html  |   227 +
 .../core/appender/rewrite/RewriteAppender.html     |   269 +
 .../log4j/core/appender/rewrite/RewritePolicy.html |   144 +
 .../class-use/LoggerNameLevelRewritePolicy.html    |    92 +
 .../rewrite/class-use/MapRewritePolicy.Mode.html   |    97 +
 .../rewrite/class-use/MapRewritePolicy.html        |    92 +
 .../rewrite/class-use/PropertiesRewritePolicy.html |    92 +
 .../rewrite/class-use/RewriteAppender.html         |    96 +
 .../appender/rewrite/class-use/RewritePolicy.html  |   160 +
 .../core/appender/rewrite/package-summary.html     |   155 +
 .../log4j/core/appender/rewrite/package-tree.html  |   111 +
 .../log4j/core/appender/rewrite/package-use.html   |   126 +
 .../appender/rolling/AbstractRolloverStrategy.html |   312 +
 .../appender/rolling/AbstractTriggeringPolicy.html |   169 +
 .../rolling/CompositeTriggeringPolicy.html         |   264 +
 .../appender/rolling/CronTriggeringPolicy.html     |   273 +
 .../rolling/DefaultRolloverStrategy.Builder.html   |   404 +
 .../appender/rolling/DefaultRolloverStrategy.html  |   446 +
 .../rolling/DirectFileRolloverStrategy.html        |   143 +
 .../DirectWriteRolloverStrategy.Builder.html       |   349 +
 .../rolling/DirectWriteRolloverStrategy.html       |   419 +
 .../log4j/core/appender/rolling/FileExtension.html |   296 +
 .../log4j/core/appender/rolling/FileSize.html      |   151 +
 .../appender/rolling/NoOpTriggeringPolicy.html     |   257 +
 .../rolling/OnStartupTriggeringPolicy.html         |   218 +
 .../core/appender/rolling/PatternProcessor.html    |   440 +
 .../core/appender/rolling/RollingFileManager.html  |   794 +
 .../rolling/RollingRandomAccessFileManager.html    |   528 +
 .../core/appender/rolling/RolloverDescription.html |   193 +
 .../appender/rolling/RolloverDescriptionImpl.html  |   253 +
 .../core/appender/rolling/RolloverFrequency.html   |   286 +
 .../core/appender/rolling/RolloverListener.html    |   155 +
 .../core/appender/rolling/RolloverStrategy.html    |   147 +
 .../rolling/SizeBasedTriggeringPolicy.html         |   283 +
 .../rolling/TimeBasedTriggeringPolicy.Builder.html |   240 +
 .../rolling/TimeBasedTriggeringPolicy.html         |   273 +
 .../core/appender/rolling/TriggeringPolicy.html    |   171 +
 .../appender/rolling/action/AbstractAction.html    |   294 +
 .../rolling/action/AbstractPathAction.html         |   383 +
 .../log4j/core/appender/rolling/action/Action.html |   184 +
 .../rolling/action/CommonsCompressAction.html      |   311 +
 .../appender/rolling/action/CompositeAction.html   |   252 +
 .../core/appender/rolling/action/DeleteAction.html |   310 +
 .../appender/rolling/action/DeletingVisitor.html   |   253 +
 .../core/appender/rolling/action/Duration.html     |   347 +
 .../appender/rolling/action/FileRenameAction.html  |   291 +
 .../appender/rolling/action/GzCompressAction.html  |   357 +
 .../rolling/action/IfAccumulatedFileCount.html     |   245 +
 .../rolling/action/IfAccumulatedFileSize.html      |   245 +
 .../log4j/core/appender/rolling/action/IfAll.html  |   279 +
 .../log4j/core/appender/rolling/action/IfAny.html  |   234 +
 .../core/appender/rolling/action/IfFileName.html   |   274 +
 .../rolling/action/IfLastModified.Builder.html     |   208 +
 .../appender/rolling/action/IfLastModified.html    |   282 +
 .../log4j/core/appender/rolling/action/IfNot.html  |   233 +
 .../appender/rolling/action/PathCondition.html     |   213 +
 .../rolling/action/PathSortByModificationTime.html |   232 +
 .../core/appender/rolling/action/PathSorter.html   |   107 +
 .../rolling/action/PathWithAttributes.html         |   202 +
 .../action/PosixViewAttributeAction.Builder.html   |   371 +
 .../rolling/action/PosixViewAttributeAction.html   |   296 +
 .../appender/rolling/action/ScriptCondition.html   |   234 +
 .../appender/rolling/action/SortingVisitor.html    |   220 +
 .../appender/rolling/action/ZipCompressAction.html |   311 +
 .../rolling/action/class-use/AbstractAction.html   |   126 +
 .../action/class-use/AbstractPathAction.html       |    96 +
 .../appender/rolling/action/class-use/Action.html  |   336 +
 .../action/class-use/CommonsCompressAction.html    |    62 +
 .../rolling/action/class-use/CompositeAction.html  |    62 +
 .../rolling/action/class-use/DeleteAction.html     |    98 +
 .../rolling/action/class-use/DeletingVisitor.html  |    62 +
 .../rolling/action/class-use/Duration.html         |   155 +
 .../rolling/action/class-use/FileRenameAction.html |    62 +
 .../rolling/action/class-use/GzCompressAction.html |    62 +
 .../action/class-use/IfAccumulatedFileCount.html   |    92 +
 .../action/class-use/IfAccumulatedFileSize.html    |    92 +
 .../appender/rolling/action/class-use/IfAll.html   |    91 +
 .../appender/rolling/action/class-use/IfAny.html   |    91 +
 .../rolling/action/class-use/IfFileName.html       |    94 +
 .../action/class-use/IfLastModified.Builder.html   |    95 +
 .../rolling/action/class-use/IfLastModified.html   |    97 +
 .../appender/rolling/action/class-use/IfNot.html   |    91 +
 .../rolling/action/class-use/PathCondition.html    |   312 +
 .../class-use/PathSortByModificationTime.html      |    62 +
 .../rolling/action/class-use/PathSorter.html       |   131 +
 .../action/class-use/PathWithAttributes.html       |   117 +
 .../PosixViewAttributeAction.Builder.html          |   139 +
 .../action/class-use/PosixViewAttributeAction.html |    89 +
 .../rolling/action/class-use/ScriptCondition.html  |   110 +
 .../rolling/action/class-use/SortingVisitor.html   |    62 +
 .../action/class-use/ZipCompressAction.html        |    62 +
 .../appender/rolling/action/package-summary.html   |   219 +
 .../core/appender/rolling/action/package-tree.html |   125 +
 .../core/appender/rolling/action/package-use.html  |   202 +
 .../class-use/AbstractRolloverStrategy.html        |    97 +
 .../class-use/AbstractTriggeringPolicy.html        |   112 +
 .../class-use/CompositeTriggeringPolicy.html       |    91 +
 .../rolling/class-use/CronTriggeringPolicy.html    |    93 +
 .../class-use/DefaultRolloverStrategy.Builder.html |   129 +
 .../rolling/class-use/DefaultRolloverStrategy.html |   102 +
 .../class-use/DirectFileRolloverStrategy.html      |    92 +
 .../DirectWriteRolloverStrategy.Builder.html       |   119 +
 .../class-use/DirectWriteRolloverStrategy.html     |   100 +
 .../appender/rolling/class-use/FileExtension.html  |   109 +
 .../core/appender/rolling/class-use/FileSize.html  |    62 +
 .../rolling/class-use/NoOpTriggeringPolicy.html    |    98 +
 .../class-use/OnStartupTriggeringPolicy.html       |    89 +
 .../rolling/class-use/PatternProcessor.html        |   118 +
 .../rolling/class-use/RollingFileManager.html      |   184 +
 .../class-use/RollingRandomAccessFileManager.html  |   101 +
 .../rolling/class-use/RolloverDescription.html     |   112 +
 .../rolling/class-use/RolloverDescriptionImpl.html |    62 +
 .../rolling/class-use/RolloverFrequency.html       |   100 +
 .../rolling/class-use/RolloverListener.html        |    96 +
 .../rolling/class-use/RolloverStrategy.html        |   339 +
 .../class-use/SizeBasedTriggeringPolicy.html       |    91 +
 .../TimeBasedTriggeringPolicy.Builder.html         |    98 +
 .../class-use/TimeBasedTriggeringPolicy.html       |    97 +
 .../rolling/class-use/TriggeringPolicy.html        |   382 +
 .../core/appender/rolling/package-summary.html     |   231 +
 .../log4j/core/appender/rolling/package-tree.html  |   143 +
 .../log4j/core/appender/rolling/package-use.html   |   195 +
 .../core/appender/routing/IdlePurgePolicy.html     |   329 +
 .../log4j/core/appender/routing/PurgePolicy.html   |   170 +
 .../logging/log4j/core/appender/routing/Route.html |   221 +
 .../core/appender/routing/Routes.Builder.html      |   258 +
 .../log4j/core/appender/routing/Routes.html        |   258 +
 .../appender/routing/RoutingAppender.Builder.html  |   268 +
 .../core/appender/routing/RoutingAppender.html     |   429 +
 .../routing/class-use/IdlePurgePolicy.html         |    62 +
 .../appender/routing/class-use/PurgePolicy.html    |   133 +
 .../core/appender/routing/class-use/Route.html     |   124 +
 .../appender/routing/class-use/Routes.Builder.html |   101 +
 .../core/appender/routing/class-use/Routes.html    |   125 +
 .../routing/class-use/RoutingAppender.Builder.html |    98 +
 .../routing/class-use/RoutingAppender.html         |   116 +
 .../core/appender/routing/package-summary.html     |   156 +
 .../log4j/core/appender/routing/package-tree.html  |   107 +
 .../log4j/core/appender/routing/package-use.html   |   106 +
 .../core/async/ArrayBlockingQueueFactory.html      |   208 +
 .../logging/log4j/core/async/AsyncLogger.html      |   342 +
 .../core/async/AsyncLoggerConfig.Builder.html      |   192 +
 .../AsyncLoggerConfig.RootLogger.Builder.html      |   192 +
 .../core/async/AsyncLoggerConfig.RootLogger.html   |   289 +
 .../log4j/core/async/AsyncLoggerConfig.html        |   475 +
 .../AsyncLoggerConfigDefaultExceptionHandler.html  |   202 +
 .../core/async/AsyncLoggerConfigDelegate.html      |   213 +
 ...yncLoggerConfigDisruptor.Log4jEventWrapper.html |   192 +
 .../core/async/AsyncLoggerConfigDisruptor.html     |   360 +
 .../log4j/core/async/AsyncLoggerContext.html       |   371 +
 .../core/async/AsyncLoggerContextSelector.html     |   240 +
 .../async/AsyncLoggerDefaultExceptionHandler.html  |   202 +
 .../core/async/AsyncQueueFullMessageUtil.html      |   143 +
 .../log4j/core/async/AsyncQueueFullPolicy.html     |   179 +
 .../core/async/AsyncQueueFullPolicyFactory.html    |   199 +
 .../log4j/core/async/AsyncWaitStrategyFactory.html |   143 +
 .../AsyncWaitStrategyFactoryConfig.Builder.html    |   218 +
 .../core/async/AsyncWaitStrategyFactoryConfig.html |   229 +
 .../async/BasicAsyncLoggerContextSelector.html     |   348 +
 .../log4j/core/async/BlockingQueueFactory.html     |   190 +
 .../core/async/DefaultAsyncQueueFullPolicy.html    |   190 +
 .../core/async/DiscardingAsyncQueueFullPolicy.html |   216 +
 .../core/async/DisruptorBlockingQueueFactory.html  |   182 +
 .../logging/log4j/core/async/EventRoute.html       |   287 +
 .../log4j/core/async/InternalAsyncUtil.html        |   180 +
 .../JCToolsBlockingQueueFactory.WaitStrategy.html  |   233 +
 .../core/async/JCToolsBlockingQueueFactory.html    |   197 +
 .../core/async/LinkedTransferQueueFactory.html     |   208 +
 .../log4j/core/async/RingBufferLogEvent.html       |   983 +
 .../core/async/RingBufferLogEventHandler.html      |   247 +
 .../core/async/RingBufferLogEventTranslator.html   |   281 +
 .../core/async/ThreadNameCachingStrategy.html      |   223 +
 .../async/class-use/ArrayBlockingQueueFactory.html |    89 +
 .../log4j/core/async/class-use/AsyncLogger.html    |   124 +
 .../async/class-use/AsyncLoggerConfig.Builder.html |    98 +
 .../AsyncLoggerConfig.RootLogger.Builder.html      |    98 +
 .../class-use/AsyncLoggerConfig.RootLogger.html    |    62 +
 .../core/async/class-use/AsyncLoggerConfig.html    |   108 +
 .../AsyncLoggerConfigDefaultExceptionHandler.html  |    62 +
 .../async/class-use/AsyncLoggerConfigDelegate.html |   115 +
 ...yncLoggerConfigDisruptor.Log4jEventWrapper.html |    62 +
 .../class-use/AsyncLoggerConfigDisruptor.html      |    62 +
 .../core/async/class-use/AsyncLoggerContext.html   |    62 +
 .../class-use/AsyncLoggerContextSelector.html      |    62 +
 .../AsyncLoggerDefaultExceptionHandler.html        |    62 +
 .../async/class-use/AsyncQueueFullMessageUtil.html |    62 +
 .../core/async/class-use/AsyncQueueFullPolicy.html |   119 +
 .../class-use/AsyncQueueFullPolicyFactory.html     |    62 +
 .../async/class-use/AsyncWaitStrategyFactory.html  |   123 +
 .../AsyncWaitStrategyFactoryConfig.Builder.html    |   100 +
 .../class-use/AsyncWaitStrategyFactoryConfig.html  |    89 +
 .../class-use/BasicAsyncLoggerContextSelector.html |    62 +
 .../core/async/class-use/BlockingQueueFactory.html |   124 +
 .../class-use/DefaultAsyncQueueFullPolicy.html     |    93 +
 .../class-use/DiscardingAsyncQueueFullPolicy.html  |    62 +
 .../class-use/DisruptorBlockingQueueFactory.html   |    89 +
 .../log4j/core/async/class-use/EventRoute.html     |   119 +
 .../core/async/class-use/InternalAsyncUtil.html    |    62 +
 .../JCToolsBlockingQueueFactory.WaitStrategy.html  |   106 +
 .../class-use/JCToolsBlockingQueueFactory.html     |    89 +
 .../class-use/LinkedTransferQueueFactory.html      |    89 +
 .../core/async/class-use/RingBufferLogEvent.html   |   100 +
 .../async/class-use/RingBufferLogEventHandler.html |    62 +
 .../class-use/RingBufferLogEventTranslator.html    |    62 +
 .../async/class-use/ThreadNameCachingStrategy.html |   100 +
 .../logging/log4j/core/async/package-summary.html  |   244 +
 .../logging/log4j/core/async/package-tree.html     |   165 +
 .../logging/log4j/core/async/package-use.html      |   199 +
 .../log4j/core/class-use/AbstractLifeCycle.html    |   789 +
 .../log4j/core/class-use/AbstractLogEvent.html     |    62 +
 .../logging/log4j/core/class-use/Appender.html     |   576 +
 .../log4j/core/class-use/ContextDataInjector.html  |   116 +
 .../apache/logging/log4j/core/class-use/Core.html  |    62 +
 .../class-use/DefaultLoggerContextAccessor.html    |    91 +
 .../logging/log4j/core/class-use/ErrorHandler.html |   144 +
 .../log4j/core/class-use/Filter.Result.html        |  2719 +++
 .../logging/log4j/core/class-use/Filter.html       |  1215 +
 .../logging/log4j/core/class-use/Layout.html       |  1356 ++
 .../log4j/core/class-use/LifeCycle.State.html      |   132 +
 .../logging/log4j/core/class-use/LifeCycle.html    |   853 +
 .../logging/log4j/core/class-use/LifeCycle2.html   |   799 +
 .../logging/log4j/core/class-use/LogEvent.html     |  1737 ++
 .../log4j/core/class-use/LogEventListener.html     |    62 +
 .../log4j/core/class-use/Logger.LoggerProxy.html   |    62 +
 .../log4j/core/class-use/Logger.PrivateConfig.html |   105 +
 .../logging/log4j/core/class-use/Logger.html       |  2532 ++
 .../log4j/core/class-use/LoggerContext.html        |  1133 +
 .../core/class-use/LoggerContextAccessor.html      |    91 +
 .../logging/log4j/core/class-use/StringLayout.html |   255 +
 .../logging/log4j/core/class-use/Version.html      |    62 +
 .../log4j/core/config/AbstractConfiguration.html   |  1272 +
 .../logging/log4j/core/config/AppenderControl.html |   293 +
 .../log4j/core/config/AppenderControlArraySet.html |   266 +
 .../logging/log4j/core/config/AppenderRef.html     |   200 +
 .../logging/log4j/core/config/AppendersPlugin.html |   150 +
 .../config/AwaitCompletionReliabilityStrategy.html |   334 +
 .../AwaitUnconditionallyReliabilityStrategy.html   |   333 +
 .../logging/log4j/core/config/Configuration.html   |   663 +
 .../log4j/core/config/ConfigurationAware.html      |   145 +
 .../log4j/core/config/ConfigurationException.html  |   195 +
 .../log4j/core/config/ConfigurationFactory.html    |   624 +
 .../core/config/ConfigurationFileWatcher.html      |   304 +
 .../log4j/core/config/ConfigurationListener.html   |   134 +
 .../ConfigurationScheduler.CronRunnable.html       |   200 +
 .../log4j/core/config/ConfigurationScheduler.html  |   454 +
 .../log4j/core/config/ConfigurationSource.html     |   522 +
 .../logging/log4j/core/config/Configurator.html    |   642 +
 .../log4j/core/config/CronScheduledFuture.html     |   275 +
 .../log4j/core/config/CustomLevelConfig.html       |   229 +
 .../logging/log4j/core/config/CustomLevels.html    |   167 +
 .../log4j/core/config/DefaultAdvertiser.html       |   200 +
 .../log4j/core/config/DefaultConfiguration.html    |   300 +
 .../core/config/DefaultReliabilityStrategy.html    |   333 +
 .../logging/log4j/core/config/HttpWatcher.html     |   280 +
 .../config/LocationAwareReliabilityStrategy.html   |   164 +
 .../core/config/LockingReliabilityStrategy.html    |   333 +
 .../log4j/core/config/LoggerConfig.Builder.html    |   383 +
 .../core/config/LoggerConfig.LevelAndRefs.html     |   176 +
 .../config/LoggerConfig.LoggerConfigPredicate.html |   225 +
 .../config/LoggerConfig.RootLogger.Builder.html    |   348 +
 .../log4j/core/config/LoggerConfig.RootLogger.html |   262 +
 .../logging/log4j/core/config/LoggerConfig.html    |   980 +
 .../log4j/core/config/LoggerContextAware.html      |   145 +
 .../apache/logging/log4j/core/config/Loggers.html  |   174 +
 .../logging/log4j/core/config/LoggersPlugin.html   |   150 +
 .../org/apache/logging/log4j/core/config/Node.html |   392 +
 .../log4j/core/config/NullConfiguration.html       |   219 +
 .../apache/logging/log4j/core/config/Order.html    |   134 +
 .../logging/log4j/core/config/OrderComparator.html |   204 +
 .../log4j/core/config/PropertiesPlugin.html        |   155 +
 .../apache/logging/log4j/core/config/Property.html |   328 +
 .../logging/log4j/core/config/Reconfigurable.html  |   134 +
 .../log4j/core/config/ReliabilityStrategy.html     |   237 +
 .../core/config/ReliabilityStrategyFactory.html    |   157 +
 .../logging/log4j/core/config/Scheduled.html       |    86 +
 .../logging/log4j/core/config/ScriptsPlugin.html   |   150 +
 .../log4j/core/config/arbiters/Arbiter.html        |   171 +
 .../core/config/arbiters/ClassArbiter.Builder.html |   250 +
 .../log4j/core/config/arbiters/ClassArbiter.html   |   185 +
 .../config/arbiters/DefaultArbiter.Builder.html    |   195 +
 .../log4j/core/config/arbiters/DefaultArbiter.html |   215 +
 .../arbiters/EnvironmentArbiter.Builder.html       |   285 +
 .../core/config/arbiters/EnvironmentArbiter.html   |   190 +
 .../config/arbiters/ScriptArbiter.Builder.html     |   213 +
 .../log4j/core/config/arbiters/ScriptArbiter.html  |   188 +
 .../config/arbiters/SelectArbiter.Builder.html     |   195 +
 .../log4j/core/config/arbiters/SelectArbiter.html  |   194 +
 .../arbiters/SystemPropertyArbiter.Builder.html    |   285 +
 .../config/arbiters/SystemPropertyArbiter.html     |   190 +
 .../core/config/arbiters/class-use/Arbiter.html    |   127 +
 .../arbiters/class-use/ClassArbiter.Builder.html   |    95 +
 .../config/arbiters/class-use/ClassArbiter.html    |    87 +
 .../arbiters/class-use/DefaultArbiter.Builder.html |    90 +
 .../config/arbiters/class-use/DefaultArbiter.html  |    87 +
 .../class-use/EnvironmentArbiter.Builder.html      |   100 +
 .../arbiters/class-use/EnvironmentArbiter.html     |    87 +
 .../arbiters/class-use/ScriptArbiter.Builder.html  |    96 +
 .../config/arbiters/class-use/ScriptArbiter.html   |    87 +
 .../arbiters/class-use/SelectArbiter.Builder.html  |    90 +
 .../config/arbiters/class-use/SelectArbiter.html   |    87 +
 .../class-use/SystemPropertyArbiter.Builder.html   |   100 +
 .../arbiters/class-use/SystemPropertyArbiter.html  |    87 +
 .../core/config/arbiters/package-summary.html      |   146 +
 .../log4j/core/config/arbiters/package-tree.html   |    93 +
 .../log4j/core/config/arbiters/package-use.html    |   122 +
 .../builder/api/AppenderComponentBuilder.html      |   175 +
 .../builder/api/AppenderRefComponentBuilder.html   |   113 +
 .../log4j/core/config/builder/api/Component.html   |   246 +
 .../core/config/builder/api/ComponentBuilder.html  |   317 +
 .../api/CompositeFilterComponentBuilder.html       |   113 +
 .../config/builder/api/ConfigurationBuilder.html   |  1357 ++
 .../builder/api/ConfigurationBuilderFactory.html   |   189 +
 .../builder/api/CustomLevelComponentBuilder.html   |   110 +
 .../config/builder/api/FilterComponentBuilder.html |   110 +
 .../builder/api/FilterableComponentBuilder.html    |   158 +
 .../builder/api/KeyValuePairComponentBuilder.html  |   110 +
 .../config/builder/api/LayoutComponentBuilder.html |   110 +
 .../builder/api/LoggableComponentBuilder.html      |   161 +
 .../config/builder/api/LoggerComponentBuilder.html |   116 +
 .../builder/api/PropertyComponentBuilder.html      |   110 +
 .../builder/api/RootLoggerComponentBuilder.html    |   116 +
 .../config/builder/api/ScriptComponentBuilder.html |   110 +
 .../builder/api/ScriptFileComponentBuilder.html    |   172 +
 .../api/class-use/AppenderComponentBuilder.html    |   136 +
 .../api/class-use/AppenderRefComponentBuilder.html |   120 +
 .../config/builder/api/class-use/Component.html    |   161 +
 .../builder/api/class-use/ComponentBuilder.html    |   291 +
 .../class-use/CompositeFilterComponentBuilder.html |    62 +
 .../api/class-use/ConfigurationBuilder.html        |   293 +
 .../api/class-use/ConfigurationBuilderFactory.html |   172 +
 .../api/class-use/CustomLevelComponentBuilder.html |   131 +
 .../api/class-use/FilterComponentBuilder.html      |   150 +
 .../api/class-use/FilterableComponentBuilder.html  |   116 +
 .../class-use/KeyValuePairComponentBuilder.html    |   111 +
 .../api/class-use/LayoutComponentBuilder.html      |   120 +
 .../api/class-use/LoggableComponentBuilder.html    |    96 +
 .../api/class-use/LoggerComponentBuilder.html      |   245 +
 .../api/class-use/PropertyComponentBuilder.html    |   111 +
 .../api/class-use/RootLoggerComponentBuilder.html  |   225 +
 .../api/class-use/ScriptComponentBuilder.html      |   133 +
 .../api/class-use/ScriptFileComponentBuilder.html  |   151 +
 .../core/config/builder/api/package-summary.html   |   172 +
 .../core/config/builder/api/package-tree.html      |   111 +
 .../log4j/core/config/builder/api/package-use.html |   306 +
 .../config/builder/impl/BuiltConfiguration.html    |   354 +
 .../builder/impl/DefaultConfigurationBuilder.html  |  1631 ++
 .../builder/impl/class-use/BuiltConfiguration.html |   138 +
 .../class-use/DefaultConfigurationBuilder.html     |    62 +
 .../core/config/builder/impl/package-summary.html  |   100 +
 .../core/config/builder/impl/package-tree.html     |    89 +
 .../core/config/builder/impl/package-use.html      |   122 +
 .../config/class-use/AbstractConfiguration.html    |   259 +
 .../core/config/class-use/AppenderControl.html     |   132 +
 .../config/class-use/AppenderControlArraySet.html  |    62 +
 .../log4j/core/config/class-use/AppenderRef.html   |   335 +
 .../core/config/class-use/AppendersPlugin.html     |    62 +
 .../AwaitCompletionReliabilityStrategy.html        |    62 +
 .../AwaitUnconditionallyReliabilityStrategy.html   |    62 +
 .../log4j/core/config/class-use/Configuration.html |  2167 ++
 .../core/config/class-use/ConfigurationAware.html  |   116 +
 .../config/class-use/ConfigurationException.html   |    62 +
 .../config/class-use/ConfigurationFactory.html     |   183 +
 .../config/class-use/ConfigurationFileWatcher.html |    62 +
 .../config/class-use/ConfigurationListener.html    |   274 +
 .../ConfigurationScheduler.CronRunnable.html       |    62 +
 .../config/class-use/ConfigurationScheduler.html   |   130 +
 .../core/config/class-use/ConfigurationSource.html |   399 +
 .../log4j/core/config/class-use/Configurator.html  |    62 +
 .../core/config/class-use/CronScheduledFuture.html |   108 +
 .../core/config/class-use/CustomLevelConfig.html   |   123 +
 .../log4j/core/config/class-use/CustomLevels.html  |    91 +
 .../core/config/class-use/DefaultAdvertiser.html   |    62 +
 .../config/class-use/DefaultConfiguration.html     |    62 +
 .../class-use/DefaultReliabilityStrategy.html      |    62 +
 .../log4j/core/config/class-use/HttpWatcher.html   |    62 +
 .../LocationAwareReliabilityStrategy.html          |   107 +
 .../class-use/LockingReliabilityStrategy.html      |    62 +
 .../config/class-use/LoggerConfig.Builder.html     |   118 +
 .../class-use/LoggerConfig.LevelAndRefs.html       |    92 +
 .../LoggerConfig.LoggerConfigPredicate.html        |   134 +
 .../class-use/LoggerConfig.RootLogger.Builder.html |   118 +
 .../config/class-use/LoggerConfig.RootLogger.html  |    62 +
 .../log4j/core/config/class-use/LoggerConfig.html  |   570 +
 .../core/config/class-use/LoggerContextAware.html  |    91 +
 .../log4j/core/config/class-use/Loggers.html       |    91 +
 .../log4j/core/config/class-use/LoggersPlugin.html |    62 +
 .../logging/log4j/core/config/class-use/Node.html  |   404 +
 .../core/config/class-use/NullConfiguration.html   |    62 +
 .../logging/log4j/core/config/class-use/Order.html |   147 +
 .../core/config/class-use/OrderComparator.html     |    62 +
 .../core/config/class-use/PropertiesPlugin.html    |    62 +
 .../log4j/core/config/class-use/Property.html      |   845 +
 .../core/config/class-use/Reconfigurable.html      |   304 +
 .../core/config/class-use/ReliabilityStrategy.html |   131 +
 .../class-use/ReliabilityStrategyFactory.html      |    62 +
 .../log4j/core/config/class-use/Scheduled.html     |   111 +
 .../log4j/core/config/class-use/ScriptsPlugin.html |    62 +
 .../config/composite/CompositeConfiguration.html   |   288 +
 .../config/composite/DefaultMergeStrategy.html     |   225 +
 .../log4j/core/config/composite/MergeStrategy.html |   165 +
 .../class-use/CompositeConfiguration.html          |    62 +
 .../composite/class-use/DefaultMergeStrategy.html  |    62 +
 .../config/composite/class-use/MergeStrategy.html  |    91 +
 .../core/config/composite/package-summary.html     |   121 +
 .../log4j/core/config/composite/package-tree.html  |    95 +
 .../log4j/core/config/composite/package-use.html   |    88 +
 .../log4j/core/config/json/JsonConfiguration.html  |   262 +
 .../core/config/json/JsonConfigurationFactory.html |   216 +
 .../config/json/class-use/JsonConfiguration.html   |    89 +
 .../json/class-use/JsonConfigurationFactory.html   |    62 +
 .../log4j/core/config/json/package-summary.html    |   109 +
 .../log4j/core/config/json/package-tree.html       |    97 +
 .../log4j/core/config/json/package-use.html        |    88 +
 .../logging/log4j/core/config/package-summary.html |   310 +
 .../logging/log4j/core/config/package-tree.html    |   186 +
 .../logging/log4j/core/config/package-use.html     |   956 +
 .../logging/log4j/core/config/plugins/Plugin.html  |   244 +
 .../log4j/core/config/plugins/PluginAliases.html   |   123 +
 .../log4j/core/config/plugins/PluginAttribute.html |   327 +
 .../config/plugins/PluginBuilderAttribute.html     |   149 +
 .../core/config/plugins/PluginBuilderFactory.html  |    86 +
 .../core/config/plugins/PluginConfiguration.html   |    95 +
 .../log4j/core/config/plugins/PluginElement.html   |   127 +
 .../log4j/core/config/plugins/PluginFactory.html   |    90 +
 .../core/config/plugins/PluginLoggerContext.html   |    95 +
 .../log4j/core/config/plugins/PluginNode.html      |    87 +
 .../log4j/core/config/plugins/PluginValue.html     |   168 +
 .../core/config/plugins/PluginVisitorStrategy.html |   130 +
 .../core/config/plugins/class-use/Plugin.html      |  1594 ++
 .../config/plugins/class-use/PluginAliases.html    |   165 +
 .../config/plugins/class-use/PluginAttribute.html  |  2755 +++
 .../plugins/class-use/PluginBuilderAttribute.html  |    98 +
 .../plugins/class-use/PluginBuilderFactory.html    |   512 +
 .../plugins/class-use/PluginConfiguration.html     |   455 +
 .../config/plugins/class-use/PluginElement.html    |   850 +
 .../config/plugins/class-use/PluginFactory.html    |   787 +
 .../plugins/class-use/PluginLoggerContext.html     |    62 +
 .../core/config/plugins/class-use/PluginNode.html  |    93 +
 .../core/config/plugins/class-use/PluginValue.html |   113 +
 .../plugins/class-use/PluginVisitorStrategy.html   |   121 +
 .../config/plugins/convert/Base64Converter.html    |   167 +
 .../config/plugins/convert/DateTypeConverter.html  |   151 +
 .../core/config/plugins/convert/EnumConverter.html |   189 +
 .../core/config/plugins/convert/HexConverter.html  |   169 +
 .../core/config/plugins/convert/TypeConverter.html |   154 +
 .../plugins/convert/TypeConverterRegistry.html     |   172 +
 .../TypeConverters.BigDecimalConverter.html        |   187 +
 .../TypeConverters.BigIntegerConverter.html        |   187 +
 .../convert/TypeConverters.BooleanConverter.html   |   187 +
 .../convert/TypeConverters.ByteArrayConverter.html |   194 +
 .../convert/TypeConverters.ByteConverter.html      |   187 +
 .../convert/TypeConverters.CharArrayConverter.html |   187 +
 .../convert/TypeConverters.CharacterConverter.html |   187 +
 .../convert/TypeConverters.CharsetConverter.html   |   187 +
 .../convert/TypeConverters.ClassConverter.html     |   190 +
 .../TypeConverters.CronExpressionConverter.html    |   189 +
 .../convert/TypeConverters.DoubleConverter.html    |   187 +
 .../convert/TypeConverters.DurationConverter.html  |   200 +
 .../convert/TypeConverters.FileConverter.html      |   187 +
 .../convert/TypeConverters.FloatConverter.html     |   187 +
 .../TypeConverters.InetAddressConverter.html       |   190 +
 .../convert/TypeConverters.IntegerConverter.html   |   187 +
 .../convert/TypeConverters.LevelConverter.html     |   187 +
 .../convert/TypeConverters.LongConverter.html      |   187 +
 .../convert/TypeConverters.PathConverter.html      |   194 +
 .../convert/TypeConverters.PatternConverter.html   |   187 +
 .../TypeConverters.SecurityProviderConverter.html  |   187 +
 .../convert/TypeConverters.ShortConverter.html     |   187 +
 .../convert/TypeConverters.StringConverter.html    |   187 +
 .../convert/TypeConverters.UriConverter.html       |   190 +
 .../convert/TypeConverters.UrlConverter.html       |   190 +
 .../convert/TypeConverters.UuidConverter.html      |   194 +
 .../config/plugins/convert/TypeConverters.html     |   373 +
 .../plugins/convert/class-use/Base64Converter.html |    62 +
 .../convert/class-use/DateTypeConverter.html       |    62 +
 .../plugins/convert/class-use/EnumConverter.html   |    62 +
 .../plugins/convert/class-use/HexConverter.html    |    62 +
 .../plugins/convert/class-use/TypeConverter.html   |   233 +
 .../convert/class-use/TypeConverterRegistry.html   |    91 +
 .../TypeConverters.BigDecimalConverter.html        |    62 +
 .../TypeConverters.BigIntegerConverter.html        |    62 +
 .../class-use/TypeConverters.BooleanConverter.html |    62 +
 .../TypeConverters.ByteArrayConverter.html         |    62 +
 .../class-use/TypeConverters.ByteConverter.html    |    62 +
 .../TypeConverters.CharArrayConverter.html         |    62 +
 .../TypeConverters.CharacterConverter.html         |    62 +
 .../class-use/TypeConverters.CharsetConverter.html |    62 +
 .../class-use/TypeConverters.ClassConverter.html   |    62 +
 .../TypeConverters.CronExpressionConverter.html    |    62 +
 .../class-use/TypeConverters.DoubleConverter.html  |    62 +
 .../TypeConverters.DurationConverter.html          |    62 +
 .../class-use/TypeConverters.FileConverter.html    |    62 +
 .../class-use/TypeConverters.FloatConverter.html   |    62 +
 .../TypeConverters.InetAddressConverter.html       |    62 +
 .../class-use/TypeConverters.IntegerConverter.html |    62 +
 .../class-use/TypeConverters.LevelConverter.html   |    62 +
 .../class-use/TypeConverters.LongConverter.html    |    62 +
 .../class-use/TypeConverters.PathConverter.html    |    62 +
 .../class-use/TypeConverters.PatternConverter.html |    62 +
 .../TypeConverters.SecurityProviderConverter.html  |    62 +
 .../class-use/TypeConverters.ShortConverter.html   |    62 +
 .../class-use/TypeConverters.StringConverter.html  |    62 +
 .../class-use/TypeConverters.UriConverter.html     |    62 +
 .../class-use/TypeConverters.UrlConverter.html     |    62 +
 .../class-use/TypeConverters.UuidConverter.html    |    62 +
 .../plugins/convert/class-use/TypeConverters.html  |    62 +
 .../config/plugins/convert/package-summary.html    |   254 +
 .../core/config/plugins/convert/package-tree.html  |   113 +
 .../core/config/plugins/convert/package-use.html   |    92 +
 .../log4j/core/config/plugins/package-summary.html |   172 +
 .../log4j/core/config/plugins/package-tree.html    |    83 +
 .../log4j/core/config/plugins/package-use.html     |   839 +
 .../core/config/plugins/processor/PluginCache.html |   244 +
 .../core/config/plugins/processor/PluginEntry.html |   289 +
 .../config/plugins/processor/PluginProcessor.html  |   241 +
 .../plugins/processor/class-use/PluginCache.html   |    62 +
 .../plugins/processor/class-use/PluginEntry.html   |   116 +
 .../processor/class-use/PluginProcessor.html       |    62 +
 .../config/plugins/processor/package-summary.html  |   130 +
 .../config/plugins/processor/package-tree.html     |    82 +
 .../core/config/plugins/processor/package-use.html |   105 +
 .../core/config/plugins/util/PluginBuilder.html    |   254 +
 .../core/config/plugins/util/PluginManager.html    |   283 +
 .../plugins/util/PluginRegistry.PluginTest.html    |   251 +
 .../core/config/plugins/util/PluginRegistry.html   |   242 +
 .../log4j/core/config/plugins/util/PluginType.html |   250 +
 .../log4j/core/config/plugins/util/PluginUtil.html |   194 +
 .../config/plugins/util/ResolverUtil.Test.html     |   185 +
 .../core/config/plugins/util/ResolverUtil.html     |   336 +
 .../plugins/util/class-use/PluginBuilder.html      |   101 +
 .../plugins/util/class-use/PluginManager.html      |   156 +
 .../util/class-use/PluginRegistry.PluginTest.html  |    62 +
 .../plugins/util/class-use/PluginRegistry.html     |    91 +
 .../config/plugins/util/class-use/PluginType.html  |   187 +
 .../config/plugins/util/class-use/PluginUtil.html  |    62 +
 .../plugins/util/class-use/ResolverUtil.Test.html  |   116 +
 .../plugins/util/class-use/ResolverUtil.html       |    62 +
 .../core/config/plugins/util/package-summary.html  |   160 +
 .../core/config/plugins/util/package-tree.html     |    88 +
 .../core/config/plugins/util/package-use.html      |   157 +
 .../core/config/plugins/validation/Constraint.html |   131 +
 .../plugins/validation/ConstraintValidator.html    |   170 +
 .../plugins/validation/ConstraintValidators.html   |   151 +
 .../plugins/validation/class-use/Constraint.html   |   107 +
 .../validation/class-use/ConstraintValidator.html  |   127 +
 .../validation/class-use/ConstraintValidators.html |    62 +
 .../plugins/validation/constraints/NotBlank.html   |   137 +
 .../plugins/validation/constraints/Required.html   |   136 +
 .../plugins/validation/constraints/ValidHost.html  |   136 +
 .../plugins/validation/constraints/ValidPort.html  |   136 +
 .../validation/constraints/class-use/NotBlank.html |    89 +
 .../validation/constraints/class-use/Required.html |   272 +
 .../constraints/class-use/ValidHost.html           |    89 +
 .../constraints/class-use/ValidPort.html           |   128 +
 .../validation/constraints/package-summary.html    |   128 +
 .../validation/constraints/package-tree.html       |    75 +
 .../validation/constraints/package-use.html        |   207 +
 .../config/plugins/validation/package-summary.html |   149 +
 .../config/plugins/validation/package-tree.html    |    88 +
 .../config/plugins/validation/package-use.html     |   122 +
 .../validation/validators/NotBlankValidator.html   |   208 +
 .../validation/validators/RequiredValidator.html   |   214 +
 .../validation/validators/ValidHostValidator.html  |   208 +
 .../validation/validators/ValidPortValidator.html  |   207 +
 .../validators/class-use/NotBlankValidator.html    |    62 +
 .../validators/class-use/RequiredValidator.html    |    62 +
 .../validators/class-use/ValidHostValidator.html   |    62 +
 .../validators/class-use/ValidPortValidator.html   |    62 +
 .../validation/validators/package-summary.html     |   128 +
 .../validation/validators/package-tree.html        |    79 +
 .../plugins/validation/validators/package-use.html |    62 +
 .../plugins/visitors/AbstractPluginVisitor.html    |   422 +
 .../plugins/visitors/PluginAttributeVisitor.html   |   201 +
 .../visitors/PluginBuilderAttributeVisitor.html    |   211 +
 .../visitors/PluginConfigurationVisitor.html       |   201 +
 .../plugins/visitors/PluginElementVisitor.html     |   201 +
 .../visitors/PluginLoggerContextVisitor.html       |   201 +
 .../config/plugins/visitors/PluginNodeVisitor.html |   201 +
 .../plugins/visitors/PluginValueVisitor.html       |   201 +
 .../config/plugins/visitors/PluginVisitor.html     |   258 +
 .../config/plugins/visitors/PluginVisitors.html    |   149 +
 .../visitors/class-use/AbstractPluginVisitor.html  |   121 +
 .../visitors/class-use/PluginAttributeVisitor.html |    62 +
 .../class-use/PluginBuilderAttributeVisitor.html   |    62 +
 .../class-use/PluginConfigurationVisitor.html      |    62 +
 .../visitors/class-use/PluginElementVisitor.html   |    62 +
 .../class-use/PluginLoggerContextVisitor.html      |    62 +
 .../visitors/class-use/PluginNodeVisitor.html      |    62 +
 .../visitors/class-use/PluginValueVisitor.html     |    62 +
 .../plugins/visitors/class-use/PluginVisitor.html  |   178 +
 .../plugins/visitors/class-use/PluginVisitors.html |    62 +
 .../config/plugins/visitors/package-summary.html   |   169 +
 .../core/config/plugins/visitors/package-tree.html |    93 +
 .../core/config/plugins/visitors/package-use.html  |    93 +
 .../config/properties/PropertiesConfiguration.html |   237 +
 .../properties/PropertiesConfigurationBuilder.html |   228 +
 .../properties/PropertiesConfigurationFactory.html |   208 +
 .../class-use/PropertiesConfiguration.html         |    93 +
 .../class-use/PropertiesConfigurationBuilder.html  |    95 +
 .../class-use/PropertiesConfigurationFactory.html  |    62 +
 .../core/config/properties/package-summary.html    |   115 +
 .../log4j/core/config/properties/package-tree.html |   102 +
 .../log4j/core/config/properties/package-use.html  |    92 +
 .../status/StatusConfiguration.Verbosity.html      |   256 +
 .../core/config/status/StatusConfiguration.html    |   325 +
 .../class-use/StatusConfiguration.Verbosity.html   |   106 +
 .../status/class-use/StatusConfiguration.html      |   133 +
 .../log4j/core/config/status/package-summary.html  |   117 +
 .../log4j/core/config/status/package-tree.html     |    90 +
 .../log4j/core/config/status/package-use.html      |   111 +
 .../log4j/core/config/xml/XmlConfiguration.html    |   249 +
 .../core/config/xml/XmlConfigurationFactory.html   |   243 +
 .../config/xml/class-use/XmlConfiguration.html     |    62 +
 .../xml/class-use/XmlConfigurationFactory.html     |    62 +
 .../log4j/core/config/xml/package-summary.html     |   111 +
 .../log4j/core/config/xml/package-tree.html        |    97 +
 .../logging/log4j/core/config/xml/package-use.html |    62 +
 .../log4j/core/config/yaml/YamlConfiguration.html  |   241 +
 .../core/config/yaml/YamlConfigurationFactory.html |   216 +
 .../config/yaml/class-use/YamlConfiguration.html   |    62 +
 .../yaml/class-use/YamlConfigurationFactory.html   |    62 +
 .../log4j/core/config/yaml/package-summary.html    |   107 +
 .../log4j/core/config/yaml/package-tree.html       |   101 +
 .../log4j/core/config/yaml/package-use.html        |    62 +
 .../AbstractFilter.AbstractFilterBuilder.html      |   279 +
 .../logging/log4j/core/filter/AbstractFilter.html  |   944 +
 .../core/filter/AbstractFilterable.Builder.html    |   236 +
 .../log4j/core/filter/AbstractFilterable.html      |   387 +
 .../log4j/core/filter/BurstFilter.Builder.html     |   255 +
 .../logging/log4j/core/filter/BurstFilter.html     |   870 +
 .../logging/log4j/core/filter/CompositeFilter.html |   944 +
 .../log4j/core/filter/DenyAllFilter.Builder.html   |   200 +
 .../logging/log4j/core/filter/DenyAllFilter.html   |   827 +
 .../log4j/core/filter/DynamicThresholdFilter.html  |   890 +
 .../logging/log4j/core/filter/Filterable.html      |   232 +
 .../core/filter/LevelMatchFilter.Builder.html      |   218 +
 .../log4j/core/filter/LevelMatchFilter.html        |   859 +
 .../log4j/core/filter/LevelRangeFilter.html        |   934 +
 .../logging/log4j/core/filter/MapFilter.html       |   868 +
 .../logging/log4j/core/filter/MarkerFilter.html    |   868 +
 .../MutableThreadContextMapFilter.Builder.html     |   256 +
 ...ontextMapFilter.FilterConfigUpdateListener.html |   133 +
 .../core/filter/MutableThreadContextMapFilter.html |   870 +
 .../log4j/core/filter/NoMarkerFilter.Builder.html  |   200 +
 .../logging/log4j/core/filter/NoMarkerFilter.html  |   814 +
 .../logging/log4j/core/filter/RegexFilter.html     |   364 +
 .../logging/log4j/core/filter/ScriptFilter.html    |   356 +
 .../core/filter/StringMatchFilter.Builder.html     |   218 +
 .../log4j/core/filter/StringMatchFilter.html       |   859 +
 .../log4j/core/filter/StructuredDataFilter.html    |   286 +
 .../log4j/core/filter/ThreadContextMapFilter.html  |   854 +
 .../logging/log4j/core/filter/ThresholdFilter.html |   850 +
 .../logging/log4j/core/filter/TimeFilter.html      |   844 +
 .../AbstractFilter.AbstractFilterBuilder.html      |   113 +
 .../core/filter/class-use/AbstractFilter.html      |   170 +
 .../class-use/AbstractFilterable.Builder.html      |   296 +
 .../core/filter/class-use/AbstractFilterable.html  |   544 +
 .../core/filter/class-use/BurstFilter.Builder.html |   104 +
 .../log4j/core/filter/class-use/BurstFilter.html   |    89 +
 .../core/filter/class-use/CompositeFilter.html     |    97 +
 .../filter/class-use/DenyAllFilter.Builder.html    |    89 +
 .../log4j/core/filter/class-use/DenyAllFilter.html |    89 +
 .../filter/class-use/DynamicThresholdFilter.html   |    95 +
 .../log4j/core/filter/class-use/Filterable.html    |   575 +
 .../filter/class-use/LevelMatchFilter.Builder.html |    94 +
 .../core/filter/class-use/LevelMatchFilter.html    |    89 +
 .../core/filter/class-use/LevelRangeFilter.html    |    94 +
 .../log4j/core/filter/class-use/MapFilter.html     |   108 +
 .../log4j/core/filter/class-use/MarkerFilter.html  |    93 +
 .../MutableThreadContextMapFilter.Builder.html     |   105 +
 ...ontextMapFilter.FilterConfigUpdateListener.html |    89 +
 .../class-use/MutableThreadContextMapFilter.html   |    89 +
 .../filter/class-use/NoMarkerFilter.Builder.html   |    89 +
 .../core/filter/class-use/NoMarkerFilter.html      |    89 +
 .../log4j/core/filter/class-use/RegexFilter.html   |    95 +
 .../log4j/core/filter/class-use/ScriptFilter.html  |    94 +
 .../class-use/StringMatchFilter.Builder.html       |    94 +
 .../core/filter/class-use/StringMatchFilter.html   |    89 +
 .../filter/class-use/StructuredDataFilter.html     |    94 +
 .../filter/class-use/ThreadContextMapFilter.html   |    92 +
 .../core/filter/class-use/ThresholdFilter.html     |    93 +
 .../log4j/core/filter/class-use/TimeFilter.html    |    95 +
 .../core/filter/mutable/KeyValuePairConfig.html    |   173 +
 .../mutable/class-use/KeyValuePairConfig.html      |    62 +
 .../log4j/core/filter/mutable/package-summary.html |   104 +
 .../log4j/core/filter/mutable/package-tree.html    |    76 +
 .../log4j/core/filter/mutable/package-use.html     |    62 +
 .../logging/log4j/core/filter/package-summary.html |   219 +
 .../logging/log4j/core/filter/package-tree.html    |   126 +
 .../logging/log4j/core/filter/package-use.html     |   570 +
 .../logging/log4j/core/impl/ContextAnchor.html     |   138 +
 .../log4j/core/impl/ContextDataFactory.html        |   226 +
 .../core/impl/ContextDataInjectorFactory.html      |   212 +
 .../log4j/core/impl/DefaultLogEventFactory.html    |   250 +
 .../logging/log4j/core/impl/ExtendedClassInfo.html |   258 +
 .../log4j/core/impl/ExtendedStackTraceElement.html |   330 +
 .../log4j/core/impl/JdkMapAdapterStringMap.html    |   427 +
 .../logging/log4j/core/impl/LocationAware.html     |   134 +
 .../core/impl/LocationAwareLogEventFactory.html    |   151 +
 .../log4j/core/impl/Log4jContextFactory.html       |   539 +
 .../log4j/core/impl/Log4jLogEvent.Builder.html     |   380 +
 .../logging/log4j/core/impl/Log4jLogEvent.html     |  1096 +
 .../logging/log4j/core/impl/Log4jProvider.html     |   196 +
 .../logging/log4j/core/impl/LogEventFactory.html   |   177 +
 .../logging/log4j/core/impl/MementoMessage.html    |   261 +
 .../logging/log4j/core/impl/MutableLogEvent.html   |  1018 +
 .../log4j/core/impl/ReusableLogEventFactory.html   |   264 +
 ...ataInjector.ForCopyOnWriteThreadContextMap.html |   246 +
 ...extDataInjector.ForDefaultThreadContextMap.html |   243 +
 ...ataInjector.ForGarbageFreeThreadContextMap.html |   243 +
 .../log4j/core/impl/ThreadContextDataInjector.html |   274 +
 .../log4j/core/impl/ThreadContextDataProvider.html |   209 +
 .../log4j/core/impl/ThrowableFormatOptions.html    |   508 +
 .../logging/log4j/core/impl/ThrowableProxy.html    |   693 +
 .../log4j/core/impl/class-use/ContextAnchor.html   |    62 +
 .../core/impl/class-use/ContextDataFactory.html    |    62 +
 .../impl/class-use/ContextDataInjectorFactory.html |    62 +
 .../impl/class-use/DefaultLogEventFactory.html     |    89 +
 .../core/impl/class-use/ExtendedClassInfo.html     |    99 +
 .../impl/class-use/ExtendedStackTraceElement.html  |    91 +
 .../impl/class-use/JdkMapAdapterStringMap.html     |    62 +
 .../log4j/core/impl/class-use/LocationAware.html   |   537 +
 .../class-use/LocationAwareLogEventFactory.html    |   105 +
 .../core/impl/class-use/Log4jContextFactory.html   |    62 +
 .../core/impl/class-use/Log4jLogEvent.Builder.html |   188 +
 .../log4j/core/impl/class-use/Log4jLogEvent.html   |   139 +
 .../log4j/core/impl/class-use/Log4jProvider.html   |    62 +
 .../log4j/core/impl/class-use/LogEventFactory.html |   151 +
 .../log4j/core/impl/class-use/MementoMessage.html  |    62 +
 .../log4j/core/impl/class-use/MutableLogEvent.html |    89 +
 .../impl/class-use/ReusableLogEventFactory.html    |    62 +
 ...ataInjector.ForCopyOnWriteThreadContextMap.html |    62 +
 ...extDataInjector.ForDefaultThreadContextMap.html |    62 +
 ...ataInjector.ForGarbageFreeThreadContextMap.html |    62 +
 .../impl/class-use/ThreadContextDataInjector.html  |    62 +
 .../impl/class-use/ThreadContextDataProvider.html  |    62 +
 .../impl/class-use/ThrowableFormatOptions.html     |   131 +
 .../log4j/core/impl/class-use/ThrowableProxy.html  |   206 +
 .../logging/log4j/core/impl/package-summary.html   |   209 +
 .../logging/log4j/core/impl/package-tree.html      |   111 +
 .../logging/log4j/core/impl/package-use.html       |   375 +
 .../ContextDataAsEntryListDeserializer.html        |   188 +
 .../jackson/ContextDataAsEntryListSerializer.html  |   221 +
 .../core/jackson/ContextDataDeserializer.html      |   188 +
 .../log4j/core/jackson/ContextDataSerializer.html  |   221 +
 .../logging/log4j/core/jackson/JsonConstants.html  |   432 +
 .../core/jackson/ListOfMapEntryDeserializer.html   |   190 +
 .../core/jackson/ListOfMapEntrySerializer.html     |   221 +
 .../log4j/core/jackson/Log4jJsonObjectMapper.html  |   198 +
 .../Log4jStackTraceElementDeserializer.html        |   225 +
 .../log4j/core/jackson/Log4jXmlObjectMapper.html   |   205 +
 .../log4j/core/jackson/Log4jYamlObjectMapper.html  |   204 +
 .../logging/log4j/core/jackson/MapEntry.html       |   238 +
 .../core/jackson/SimpleMessageDeserializer.html    |   195 +
 .../core/jackson/StackTraceElementConstants.html   |   272 +
 .../logging/log4j/core/jackson/XmlConstants.html   |   442 +
 .../ContextDataAsEntryListDeserializer.html        |    62 +
 .../ContextDataAsEntryListSerializer.html          |    62 +
 .../jackson/class-use/ContextDataDeserializer.html |    62 +
 .../jackson/class-use/ContextDataSerializer.html   |    62 +
 .../core/jackson/class-use/JsonConstants.html      |    62 +
 .../class-use/ListOfMapEntryDeserializer.html      |    62 +
 .../class-use/ListOfMapEntrySerializer.html        |    62 +
 .../jackson/class-use/Log4jJsonObjectMapper.html   |    62 +
 .../Log4jStackTraceElementDeserializer.html        |    62 +
 .../jackson/class-use/Log4jXmlObjectMapper.html    |    62 +
 .../jackson/class-use/Log4jYamlObjectMapper.html   |    62 +
 .../log4j/core/jackson/class-use/MapEntry.html     |    62 +
 .../class-use/SimpleMessageDeserializer.html       |    62 +
 .../class-use/StackTraceElementConstants.html      |    62 +
 .../log4j/core/jackson/class-use/XmlConstants.html |    62 +
 .../log4j/core/jackson/package-summary.html        |   172 +
 .../logging/log4j/core/jackson/package-tree.html   |   130 +
 .../logging/log4j/core/jackson/package-use.html    |    62 +
 .../logging/log4j/core/jmx/AppenderAdmin.html      |   310 +
 .../logging/log4j/core/jmx/AppenderAdminMBean.html |   279 +
 .../logging/log4j/core/jmx/AsyncAppenderAdmin.html |   416 +
 .../log4j/core/jmx/AsyncAppenderAdminMBean.html    |   372 +
 .../log4j/core/jmx/ContextSelectorAdmin.html       |   228 +
 .../log4j/core/jmx/ContextSelectorAdminMBean.html  |   203 +
 .../logging/log4j/core/jmx/LoggerConfigAdmin.html  |   364 +
 .../log4j/core/jmx/LoggerConfigAdminMBean.html     |   328 +
 .../logging/log4j/core/jmx/LoggerContextAdmin.html |   470 +
 .../log4j/core/jmx/LoggerContextAdminMBean.html    |   441 +
 .../logging/log4j/core/jmx/RingBufferAdmin.html    |   261 +
 .../log4j/core/jmx/RingBufferAdminMBean.html       |   244 +
 .../org/apache/logging/log4j/core/jmx/Server.html  |   276 +
 .../logging/log4j/core/jmx/StatusLoggerAdmin.html  |   443 +
 .../log4j/core/jmx/StatusLoggerAdminMBean.html     |   344 +
 .../log4j/core/jmx/class-use/AppenderAdmin.html    |    62 +
 .../core/jmx/class-use/AppenderAdminMBean.html     |    91 +
 .../core/jmx/class-use/AsyncAppenderAdmin.html     |    62 +
 .../jmx/class-use/AsyncAppenderAdminMBean.html     |    91 +
 .../core/jmx/class-use/ContextSelectorAdmin.html   |    62 +
 .../jmx/class-use/ContextSelectorAdminMBean.html   |    91 +
 .../core/jmx/class-use/LoggerConfigAdmin.html      |    62 +
 .../core/jmx/class-use/LoggerConfigAdminMBean.html |    91 +
 .../core/jmx/class-use/LoggerContextAdmin.html     |    62 +
 .../jmx/class-use/LoggerContextAdminMBean.html     |    91 +
 .../log4j/core/jmx/class-use/RingBufferAdmin.html  |   133 +
 .../core/jmx/class-use/RingBufferAdminMBean.html   |    91 +
 .../logging/log4j/core/jmx/class-use/Server.html   |    62 +
 .../core/jmx/class-use/StatusLoggerAdmin.html      |    62 +
 .../core/jmx/class-use/StatusLoggerAdminMBean.html |    91 +
 .../logging/log4j/core/jmx/package-summary.html    |   170 +
 .../logging/log4j/core/jmx/package-tree.html       |    99 +
 .../apache/logging/log4j/core/jmx/package-use.html |   134 +
 .../log4j/core/layout/AbstractCsvLayout.html       |   318 +
 .../log4j/core/layout/AbstractLayout.Builder.html  |   230 +
 .../logging/log4j/core/layout/AbstractLayout.html  |   433 +
 .../core/layout/AbstractStringLayout.Builder.html  |   221 +
 .../layout/AbstractStringLayout.Serializer.html    |   153 +
 .../layout/AbstractStringLayout.Serializer2.html   |   145 +
 .../log4j/core/layout/AbstractStringLayout.html    |   507 +
 .../log4j/core/layout/ByteBufferDestination.html   |   218 +
 .../core/layout/ByteBufferDestinationHelper.html   |   178 +
 .../log4j/core/layout/CsvLogEventLayout.html       |   305 +
 .../log4j/core/layout/CsvParameterLayout.html      |   311 +
 .../apache/logging/log4j/core/layout/Encoder.html  |   159 +
 .../log4j/core/layout/GelfLayout.Builder.html      |   558 +
 .../core/layout/GelfLayout.CompressionType.html    |   239 +
 .../logging/log4j/core/layout/GelfLayout.html      |   445 +
 .../log4j/core/layout/HtmlLayout.Builder.html      |   231 +
 .../log4j/core/layout/HtmlLayout.FontSize.html     |   301 +
 .../logging/log4j/core/layout/HtmlLayout.html      |   414 +
 .../log4j/core/layout/JsonLayout.Builder.html      |   269 +
 .../logging/log4j/core/layout/JsonLayout.html      |   592 +
 .../core/layout/LevelPatternSelector.Builder.html  |   241 +
 .../log4j/core/layout/LevelPatternSelector.html    |   298 +
 .../core/layout/LockingStringBuilderEncoder.html   |   194 +
 .../logging/log4j/core/layout/LoggerFields.html    |   203 +
 .../core/layout/MarkerPatternSelector.Builder.html |   241 +
 .../log4j/core/layout/MarkerPatternSelector.html   |   298 +
 .../logging/log4j/core/layout/MessageLayout.html   |   270 +
 .../log4j/core/layout/PatternLayout.Builder.html   |   291 +
 .../layout/PatternLayout.SerializerBuilder.html    |   258 +
 .../logging/log4j/core/layout/PatternLayout.html   |   643 +
 .../log4j/core/layout/PatternMatch.Builder.html    |   226 +
 .../logging/log4j/core/layout/PatternMatch.html    |   268 +
 .../logging/log4j/core/layout/PatternSelector.html |   171 +
 .../layout/Rfc5424Layout.Rfc5424LayoutBuilder.html |   379 +
 .../logging/log4j/core/layout/Rfc5424Layout.html   |   515 +
 .../core/layout/ScriptPatternSelector.Builder.html |   223 +
 .../log4j/core/layout/ScriptPatternSelector.html   |   307 +
 .../log4j/core/layout/SerializedLayout.html        |   268 +
 .../log4j/core/layout/StringBuilderEncoder.html    |   196 +
 .../log4j/core/layout/SyslogLayout.Builder.html    |   262 +
 .../logging/log4j/core/layout/SyslogLayout.html    |   349 +
 .../log4j/core/layout/TextEncoderHelper.html       |   179 +
 .../log4j/core/layout/XmlLayout.Builder.html       |   201 +
 .../logging/log4j/core/layout/XmlLayout.html       |   569 +
 .../log4j/core/layout/YamlLayout.Builder.html      |   201 +
 .../logging/log4j/core/layout/YamlLayout.html      |   558 +
 .../core/layout/class-use/AbstractCsvLayout.html   |   121 +
 .../layout/class-use/AbstractLayout.Builder.html   |   123 +
 .../core/layout/class-use/AbstractLayout.html      |   159 +
 .../class-use/AbstractStringLayout.Builder.html    |   118 +
 .../class-use/AbstractStringLayout.Serializer.html |   192 +
 .../AbstractStringLayout.Serializer2.html          |    89 +
 .../layout/class-use/AbstractStringLayout.html     |   142 +
 .../layout/class-use/ByteBufferDestination.html    |   244 +
 .../class-use/ByteBufferDestinationHelper.html     |    62 +
 .../core/layout/class-use/CsvLogEventLayout.html   |   105 +
 .../core/layout/class-use/CsvParameterLayout.html  |    62 +
 .../log4j/core/layout/class-use/Encoder.html       |   210 +
 .../core/layout/class-use/GelfLayout.Builder.html  |    98 +
 .../class-use/GelfLayout.CompressionType.html      |   139 +
 .../log4j/core/layout/class-use/GelfLayout.html    |   100 +
 .../core/layout/class-use/HtmlLayout.Builder.html  |   113 +
 .../core/layout/class-use/HtmlLayout.FontSize.html |   112 +
 .../log4j/core/layout/class-use/HtmlLayout.html    |   104 +
 .../core/layout/class-use/JsonLayout.Builder.html  |    98 +
 .../log4j/core/layout/class-use/JsonLayout.html    |   111 +
 .../class-use/LevelPatternSelector.Builder.html    |   109 +
 .../layout/class-use/LevelPatternSelector.html     |   100 +
 .../class-use/LockingStringBuilderEncoder.html     |    62 +
 .../log4j/core/layout/class-use/LoggerFields.html  |   191 +
 .../class-use/MarkerPatternSelector.Builder.html   |   109 +
 .../layout/class-use/MarkerPatternSelector.html    |   100 +
 .../log4j/core/layout/class-use/MessageLayout.html |    62 +
 .../layout/class-use/PatternLayout.Builder.html    |   121 +
 .../class-use/PatternLayout.SerializerBuilder.html |   113 +
 .../log4j/core/layout/class-use/PatternLayout.html |   132 +
 .../layout/class-use/PatternMatch.Builder.html     |    95 +
 .../log4j/core/layout/class-use/PatternMatch.html  |   179 +
 .../core/layout/class-use/PatternSelector.html     |   146 +
 .../Rfc5424Layout.Rfc5424LayoutBuilder.html        |   150 +
 .../log4j/core/layout/class-use/Rfc5424Layout.html |   113 +
 .../class-use/ScriptPatternSelector.Builder.html   |   112 +
 .../layout/class-use/ScriptPatternSelector.html    |   101 +
 .../core/layout/class-use/SerializedLayout.html    |    91 +
 .../layout/class-use/StringBuilderEncoder.html     |    62 +
 .../layout/class-use/SyslogLayout.Builder.html     |   100 +
 .../log4j/core/layout/class-use/SyslogLayout.html  |    99 +
 .../core/layout/class-use/TextEncoderHelper.html   |    62 +
 .../core/layout/class-use/XmlLayout.Builder.html   |    98 +
 .../log4j/core/layout/class-use/XmlLayout.html     |   106 +
 .../core/layout/class-use/YamlLayout.Builder.html  |    98 +
 .../log4j/core/layout/class-use/YamlLayout.html    |    89 +
 .../logging/log4j/core/layout/package-summary.html |   277 +
 .../logging/log4j/core/layout/package-tree.html    |   161 +
 .../logging/log4j/core/layout/package-use.html     |   318 +
 .../lookup/AbstractConfigurationAwareLookup.html   |   227 +
 .../logging/log4j/core/lookup/AbstractLookup.html  |   228 +
 .../core/lookup/ConfigurationStrSubstitutor.html   |   220 +
 .../log4j/core/lookup/ContextMapLookup.html        |   219 +
 .../logging/log4j/core/lookup/DateLookup.html      |   218 +
 .../log4j/core/lookup/EnvironmentLookup.html       |   199 +
 .../logging/log4j/core/lookup/EventLookup.html     |   199 +
 .../logging/log4j/core/lookup/Interpolator.html    |   393 +
 .../logging/log4j/core/lookup/JavaLookup.html      |   279 +
 .../lookup/JmxRuntimeInputArgumentsLookup.html     |   269 +
 .../logging/log4j/core/lookup/JndiLookup.html      |   202 +
 .../logging/log4j/core/lookup/Log4jLookup.html     |   277 +
 .../logging/log4j/core/lookup/LookupResult.html    |   147 +
 .../logging/log4j/core/lookup/LowerLookup.html     |   199 +
 .../logging/log4j/core/lookup/MainMapLookup.html   |   307 +
 .../logging/log4j/core/lookup/MapLookup.html       |   315 +
 .../logging/log4j/core/lookup/MarkerLookup.html    |   254 +
 .../log4j/core/lookup/PropertiesLookup.html        |   308 +
 .../log4j/core/lookup/ResourceBundleLookup.html    |   201 +
 .../log4j/core/lookup/RuntimeStrSubstitutor.html   |   218 +
 .../logging/log4j/core/lookup/StrLookup.html       |   289 +
 .../logging/log4j/core/lookup/StrMatcher.html      |   460 +
 .../logging/log4j/core/lookup/StrSubstitutor.html  |  1932 ++
 .../log4j/core/lookup/StructuredDataLookup.html    |   253 +
 .../log4j/core/lookup/SystemPropertiesLookup.html  |   199 +
 .../logging/log4j/core/lookup/UpperLookup.html     |   217 +
 .../AbstractConfigurationAwareLookup.html          |    96 +
 .../core/lookup/class-use/AbstractLookup.html      |   146 +
 .../class-use/ConfigurationStrSubstitutor.html     |    62 +
 .../core/lookup/class-use/ContextMapLookup.html    |    62 +
 .../log4j/core/lookup/class-use/DateLookup.html    |    62 +
 .../core/lookup/class-use/EnvironmentLookup.html   |    62 +
 .../log4j/core/lookup/class-use/EventLookup.html   |    62 +
 .../log4j/core/lookup/class-use/Interpolator.html  |    62 +
 .../log4j/core/lookup/class-use/JavaLookup.html    |    62 +
 .../class-use/JmxRuntimeInputArgumentsLookup.html  |    89 +
 .../log4j/core/lookup/class-use/JndiLookup.html    |    62 +
 .../log4j/core/lookup/class-use/Log4jLookup.html   |    62 +
 .../log4j/core/lookup/class-use/LookupResult.html  |   124 +
 .../log4j/core/lookup/class-use/LowerLookup.html   |    62 +
 .../log4j/core/lookup/class-use/MainMapLookup.html |    62 +
 .../log4j/core/lookup/class-use/MapLookup.html     |    96 +
 .../log4j/core/lookup/class-use/MarkerLookup.html  |    62 +
 .../core/lookup/class-use/PropertiesLookup.html    |    62 +
 .../lookup/class-use/ResourceBundleLookup.html     |    62 +
 .../lookup/class-use/RuntimeStrSubstitutor.html    |    62 +
 .../log4j/core/lookup/class-use/StrLookup.html     |   311 +
 .../log4j/core/lookup/class-use/StrMatcher.html    |   243 +
 .../core/lookup/class-use/StrSubstitutor.html      |   405 +
 .../lookup/class-use/StructuredDataLookup.html     |    62 +
 .../lookup/class-use/SystemPropertiesLookup.html   |    62 +
 .../log4j/core/lookup/class-use/UpperLookup.html   |    62 +
 .../logging/log4j/core/lookup/package-summary.html |   215 +
 .../logging/log4j/core/lookup/package-tree.html    |   118 +
 .../logging/log4j/core/lookup/package-use.html     |   204 +
 .../log4j/core/net/AbstractSocketManager.html      |   324 +
 .../apache/logging/log4j/core/net/Advertiser.html  |   142 +
 .../log4j/core/net/DatagramOutputStream.html       |   297 +
 .../log4j/core/net/DatagramSocketManager.html      |   274 +
 .../apache/logging/log4j/core/net/Facility.html    |   640 +
 .../apache/logging/log4j/core/net/JndiManager.html |   432 +
 .../log4j/core/net/MailManager.FactoryData.html    |   341 +
 .../apache/logging/log4j/core/net/MailManager.html |   232 +
 .../logging/log4j/core/net/MailManagerFactory.html |   153 +
 .../logging/log4j/core/net/MimeMessageBuilder.html |   258 +
 .../log4j/core/net/MulticastDnsAdvertiser.html     |   243 +
 .../apache/logging/log4j/core/net/Priority.html    |   247 +
 .../apache/logging/log4j/core/net/Protocol.html    |   249 +
 .../log4j/core/net/Rfc1349TrafficClass.html        |   276 +
 .../apache/logging/log4j/core/net/Severity.html    |   377 +
 .../core/net/SmtpManager.SMTPManagerFactory.html   |   190 +
 .../apache/logging/log4j/core/net/SmtpManager.html |   501 +
 .../log4j/core/net/SocketAddress.Builder.html      |   204 +
 .../logging/log4j/core/net/SocketAddress.html      |   225 +
 .../logging/log4j/core/net/SocketOptions.html      |   625 +
 .../core/net/SocketPerformancePreferences.html     |   275 +
 .../logging/log4j/core/net/SslSocketManager.html   |   401 +
 .../core/net/TcpSocketManager.HostResolver.html    |   206 +
 .../TcpSocketManager.TcpSocketManagerFactory.html  |   206 +
 .../logging/log4j/core/net/TcpSocketManager.html   |   585 +
 .../log4j/core/net/UrlConnectionFactory.html       |   226 +
 .../core/net/class-use/AbstractSocketManager.html  |   198 +
 .../log4j/core/net/class-use/Advertiser.html       |   197 +
 .../core/net/class-use/DatagramOutputStream.html   |    62 +
 .../core/net/class-use/DatagramSocketManager.html  |    94 +
 .../logging/log4j/core/net/class-use/Facility.html |   291 +
 .../log4j/core/net/class-use/JndiManager.html      |   129 +
 .../net/class-use/MailManager.FactoryData.html     |   106 +
 .../log4j/core/net/class-use/MailManager.html      |   119 +
 .../core/net/class-use/MailManagerFactory.html     |    91 +
 .../core/net/class-use/MimeMessageBuilder.html     |    99 +
 .../core/net/class-use/MulticastDnsAdvertiser.html |    62 +
 .../logging/log4j/core/net/class-use/Priority.html |    62 +
 .../logging/log4j/core/net/class-use/Protocol.html |   180 +
 .../core/net/class-use/Rfc1349TrafficClass.html    |   113 +
 .../logging/log4j/core/net/class-use/Severity.html |   119 +
 .../class-use/SmtpManager.SMTPManagerFactory.html  |    89 +
 .../log4j/core/net/class-use/SmtpManager.html      |   110 +
 .../core/net/class-use/SocketAddress.Builder.html  |    95 +
 .../log4j/core/net/class-use/SocketAddress.html    |    94 +
 .../log4j/core/net/class-use/SocketOptions.html    |   272 +
 .../class-use/SocketPerformancePreferences.html    |   108 +
 .../log4j/core/net/class-use/SslSocketManager.html |   111 +
 .../class-use/TcpSocketManager.HostResolver.html   |   102 +
 .../TcpSocketManager.TcpSocketManagerFactory.html  |    62 +
 .../log4j/core/net/class-use/TcpSocketManager.html |   131 +
 .../core/net/class-use/UrlConnectionFactory.html   |    62 +
 .../logging/log4j/core/net/package-summary.html    |   212 +
 .../logging/log4j/core/net/package-tree.html       |   144 +
 .../apache/logging/log4j/core/net/package-use.html |   240 +
 .../net/ssl/AbstractKeyStoreConfiguration.html     |   292 +
 .../log4j/core/net/ssl/KeyStoreConfiguration.html  |   401 +
 .../net/ssl/KeyStoreConfigurationException.html    |   153 +
 .../log4j/core/net/ssl/LaxHostnameVerifier.html    |   180 +
 .../log4j/core/net/ssl/PasswordProvider.html       |   149 +
 .../log4j/core/net/ssl/SslConfiguration.html       |   293 +
 .../core/net/ssl/SslConfigurationDefaults.html     |   178 +
 .../core/net/ssl/SslConfigurationException.html    |   151 +
 .../core/net/ssl/SslConfigurationFactory.html      |   164 +
 .../log4j/core/net/ssl/StoreConfiguration.html     |   347 +
 .../core/net/ssl/StoreConfigurationException.html  |   173 +
 .../core/net/ssl/TrustStoreConfiguration.html      |   399 +
 .../net/ssl/TrustStoreConfigurationException.html  |   153 +
 .../class-use/AbstractKeyStoreConfiguration.html   |    96 +
 .../net/ssl/class-use/KeyStoreConfiguration.html   |   140 +
 .../class-use/KeyStoreConfigurationException.html  |    62 +
 .../net/ssl/class-use/LaxHostnameVerifier.html     |    62 +
 .../core/net/ssl/class-use/PasswordProvider.html   |   107 +
 .../core/net/ssl/class-use/SslConfiguration.html   |   405 +
 .../ssl/class-use/SslConfigurationDefaults.html    |    62 +
 .../ssl/class-use/SslConfigurationException.html   |    62 +
 .../net/ssl/class-use/SslConfigurationFactory.html |    62 +
 .../core/net/ssl/class-use/StoreConfiguration.html |   101 +
 .../ssl/class-use/StoreConfigurationException.html |   245 +
 .../net/ssl/class-use/TrustStoreConfiguration.html |   140 +
 .../TrustStoreConfigurationException.html          |    62 +
 .../log4j/core/net/ssl/package-summary.html        |   149 +
 .../logging/log4j/core/net/ssl/package-tree.html   |   110 +
 .../logging/log4j/core/net/ssl/package-use.html    |   142 +
 .../apache/logging/log4j/core/osgi/Activator.html  |   221 +
 .../log4j/core/osgi/BundleContextSelector.html     |   278 +
 .../log4j/core/osgi/class-use/Activator.html       |    62 +
 .../core/osgi/class-use/BundleContextSelector.html |    62 +
 .../logging/log4j/core/osgi/package-summary.html   |   111 +
 .../logging/log4j/core/osgi/package-tree.html      |    85 +
 .../logging/log4j/core/osgi/package-use.html       |    62 +
 .../apache/logging/log4j/core/package-summary.html |   256 +
 .../apache/logging/log4j/core/package-tree.html    |   136 +
 .../org/apache/logging/log4j/core/package-use.html |  1129 +
 .../log4j/core/parser/JsonLogEventParser.html      |   238 +
 .../logging/log4j/core/parser/LogEventParser.html  |   178 +
 .../logging/log4j/core/parser/ParseException.html  |   170 +
 .../log4j/core/parser/TextLogEventParser.html      |   154 +
 .../log4j/core/parser/XmlLogEventParser.html       |   238 +
 .../log4j/core/parser/YamlLogEventParser.html      |   238 +
 .../core/parser/class-use/JsonLogEventParser.html  |    62 +
 .../core/parser/class-use/LogEventParser.html      |   112 +
 .../core/parser/class-use/ParseException.html      |   103 +
 .../core/parser/class-use/TextLogEventParser.html  |   101 +
 .../core/parser/class-use/XmlLogEventParser.html   |    62 +
 .../core/parser/class-use/YamlLogEventParser.html  |    62 +
 .../logging/log4j/core/parser/package-summary.html |   133 +
 .../logging/log4j/core/parser/package-tree.html    |    97 +
 .../logging/log4j/core/parser/package-use.html     |    96 +
 .../core/pattern/AbstractPatternConverter.html     |   264 +
 .../pattern/AbstractStyleNameConverter.Black.html  |   267 +
 .../pattern/AbstractStyleNameConverter.Blue.html   |   267 +
 .../pattern/AbstractStyleNameConverter.Cyan.html   |   267 +
 .../pattern/AbstractStyleNameConverter.Green.html  |   267 +
 .../AbstractStyleNameConverter.Magenta.html        |   267 +
 .../pattern/AbstractStyleNameConverter.Red.html    |   267 +
 .../pattern/AbstractStyleNameConverter.White.html  |   267 +
 .../pattern/AbstractStyleNameConverter.Yellow.html |   267 +
 .../core/pattern/AbstractStyleNameConverter.html   |   299 +
 .../logging/log4j/core/pattern/AnsiEscape.html     |  1000 +
 .../log4j/core/pattern/ArrayPatternConverter.html  |   161 +
 .../core/pattern/ClassNamePatternConverter.html    |   214 +
 .../logging/log4j/core/pattern/ConverterKeys.html  |   122 +
 .../log4j/core/pattern/DatePatternConverter.html   |   317 +
 .../core/pattern/EncodingPatternConverter.html     |   222 +
 .../core/pattern/EndOfBatchPatternConverter.html   |   199 +
 .../pattern/EqualsBaseReplacementConverter.html    |   257 +
 .../EqualsIgnoreCaseReplacementConverter.html      |   212 +
 .../core/pattern/EqualsReplacementConverter.html   |   212 +
 .../pattern/ExtendedThrowablePatternConverter.html |   212 +
 .../core/pattern/FileDatePatternConverter.html     |   150 +
 .../core/pattern/FileLocationPatternConverter.html |   209 +
 .../logging/log4j/core/pattern/FormattingInfo.html |   363 +
 .../core/pattern/FullLocationPatternConverter.html |   209 +
 .../log4j/core/pattern/HighlightConverter.html     |   264 +
 .../log4j/core/pattern/HtmlTextRenderer.html       |   207 +
 .../core/pattern/IntegerPatternConverter.html      |   216 +
 .../log4j/core/pattern/JAnsiTextRenderer.html      |   315 +
 .../log4j/core/pattern/LevelPatternConverter.html  |   223 +
 .../core/pattern/LineLocationPatternConverter.html |   209 +
 .../pattern/LineSeparatorPatternConverter.html     |   231 +
 .../core/pattern/LiteralPatternConverter.html      |   299 +
 .../core/pattern/LogEventPatternConverter.html     |   273 +
 .../core/pattern/LoggerFqcnPatternConverter.html   |   199 +
 .../log4j/core/pattern/LoggerPatternConverter.html |   200 +
 .../log4j/core/pattern/MapPatternConverter.html    |   221 +
 .../log4j/core/pattern/MarkerPatternConverter.html |   195 +
 .../pattern/MarkerSimpleNamePatternConverter.html  |   195 +
 .../log4j/core/pattern/MaxLengthConverter.html     |   209 +
 .../log4j/core/pattern/MdcPatternConverter.html    |   214 +
 .../core/pattern/MessagePatternConverter.html      |   199 +
 .../pattern/MethodLocationPatternConverter.html    |   209 +
 .../log4j/core/pattern/NameAbbreviator.html        |   214 +
 .../log4j/core/pattern/NamePatternConverter.html   |   219 +
 .../core/pattern/NanoTimePatternConverter.html     |   195 +
 .../log4j/core/pattern/NdcPatternConverter.html    |   211 +
 .../logging/log4j/core/pattern/NotANumber.html     |   186 +
 .../log4j/core/pattern/PatternConverter.html       |   226 +
 .../log4j/core/pattern/PatternFormatter.html       |   272 +
 .../logging/log4j/core/pattern/PatternParser.html  |   308 +
 .../log4j/core/pattern/PlainTextRenderer.html      |   216 +
 .../core/pattern/ProcessIdPatternConverter.html    |   219 +
 .../log4j/core/pattern/RegexReplacement.html       |   186 +
 .../core/pattern/RegexReplacementConverter.html    |   199 +
 .../core/pattern/RelativeTimePatternConverter.html |   225 +
 .../log4j/core/pattern/RepeatPatternConverter.html |   221 +
 .../pattern/RootThrowablePatternConverter.html     |   212 +
 .../pattern/SequenceNumberPatternConverter.html    |   195 +
 .../logging/log4j/core/pattern/StyleConverter.html |   245 +
 .../logging/log4j/core/pattern/TextRenderer.html   |   166 +
 .../core/pattern/ThreadIdPatternConverter.html     |   199 +
 .../core/pattern/ThreadNamePatternConverter.html   |   195 +
 .../pattern/ThreadPriorityPatternConverter.html    |   199 +
 .../core/pattern/ThrowablePatternConverter.html    |   352 +
 .../log4j/core/pattern/UuidPatternConverter.html   |   195 +
 .../VariablesNotEmptyReplacementConverter.html     |   198 +
 .../class-use/AbstractPatternConverter.html        |   353 +
 .../AbstractStyleNameConverter.Black.html          |    92 +
 .../class-use/AbstractStyleNameConverter.Blue.html |    92 +
 .../class-use/AbstractStyleNameConverter.Cyan.html |    92 +
 .../AbstractStyleNameConverter.Green.html          |    92 +
 .../AbstractStyleNameConverter.Magenta.html        |    92 +
 .../class-use/AbstractStyleNameConverter.Red.html  |    92 +
 .../AbstractStyleNameConverter.White.html          |    92 +
 .../AbstractStyleNameConverter.Yellow.html         |    92 +
 .../class-use/AbstractStyleNameConverter.html      |   140 +
 .../log4j/core/pattern/class-use/AnsiEscape.html   |    97 +
 .../pattern/class-use/ArrayPatternConverter.html   |   119 +
 .../class-use/ClassNamePatternConverter.html       |    91 +
 .../core/pattern/class-use/ConverterKeys.html      |   332 +
 .../pattern/class-use/DatePatternConverter.html    |    91 +
 .../class-use/EncodingPatternConverter.html        |    92 +
 .../class-use/EndOfBatchPatternConverter.html      |    91 +
 .../class-use/EqualsBaseReplacementConverter.html  |    96 +
 .../EqualsIgnoreCaseReplacementConverter.html      |    92 +
 .../class-use/EqualsReplacementConverter.html      |    92 +
 .../ExtendedThrowablePatternConverter.html         |    92 +
 .../class-use/FileDatePatternConverter.html        |    62 +
 .../class-use/FileLocationPatternConverter.html    |    91 +
 .../core/pattern/class-use/FormattingInfo.html     |   133 +
 .../class-use/FullLocationPatternConverter.html    |    91 +
 .../core/pattern/class-use/HighlightConverter.html |    92 +
 .../core/pattern/class-use/HtmlTextRenderer.html   |    62 +
 .../pattern/class-use/IntegerPatternConverter.html |    91 +
 .../core/pattern/class-use/JAnsiTextRenderer.html  |    62 +
 .../pattern/class-use/LevelPatternConverter.html   |    91 +
 .../class-use/LineLocationPatternConverter.html    |    91 +
 .../class-use/LineSeparatorPatternConverter.html   |    91 +
 .../pattern/class-use/LiteralPatternConverter.html |    62 +
 .../class-use/LogEventPatternConverter.html        |   361 +
 .../class-use/LoggerFqcnPatternConverter.html      |    91 +
 .../pattern/class-use/LoggerPatternConverter.html  |    91 +
 .../pattern/class-use/MapPatternConverter.html     |    97 +
 .../pattern/class-use/MarkerPatternConverter.html  |    91 +
 .../MarkerSimpleNamePatternConverter.html          |    91 +
 .../core/pattern/class-use/MaxLengthConverter.html |    92 +
 .../pattern/class-use/MdcPatternConverter.html     |    91 +
 .../pattern/class-use/MessagePatternConverter.html |    92 +
 .../class-use/MethodLocationPatternConverter.html  |    91 +
 .../core/pattern/class-use/NameAbbreviator.html    |    96 +
 .../pattern/class-use/NamePatternConverter.html    |    96 +
 .../class-use/NanoTimePatternConverter.html        |    91 +
 .../pattern/class-use/NdcPatternConverter.html     |    91 +
 .../log4j/core/pattern/class-use/NotANumber.html   |    89 +
 .../core/pattern/class-use/PatternConverter.html   |   405 +
 .../core/pattern/class-use/PatternFormatter.html   |   220 +
 .../core/pattern/class-use/PatternParser.html      |   116 +
 .../core/pattern/class-use/PlainTextRenderer.html  |    89 +
 .../class-use/ProcessIdPatternConverter.html       |    91 +
 .../core/pattern/class-use/RegexReplacement.html   |   141 +
 .../class-use/RegexReplacementConverter.html       |    92 +
 .../class-use/RelativeTimePatternConverter.html    |    91 +
 .../pattern/class-use/RepeatPatternConverter.html  |    92 +
 .../class-use/RootThrowablePatternConverter.html   |    92 +
 .../class-use/SequenceNumberPatternConverter.html  |    91 +
 .../core/pattern/class-use/StyleConverter.html     |    92 +
 .../log4j/core/pattern/class-use/TextRenderer.html |   204 +
 .../class-use/ThreadIdPatternConverter.html        |    91 +
 .../class-use/ThreadNamePatternConverter.html      |    91 +
 .../class-use/ThreadPriorityPatternConverter.html  |    91 +
 .../class-use/ThrowablePatternConverter.html       |   112 +
 .../pattern/class-use/UuidPatternConverter.html    |    91 +
 .../VariablesNotEmptyReplacementConverter.html     |    92 +
 .../log4j/core/pattern/package-summary.html        |   386 +
 .../logging/log4j/core/pattern/package-tree.html   |   186 +
 .../logging/log4j/core/pattern/package-use.html    |   407 +
 .../logging/log4j/core/script/AbstractScript.html  |   236 +
 .../apache/logging/log4j/core/script/Script.html   |   206 +
 .../logging/log4j/core/script/ScriptFile.html      |   234 +
 .../logging/log4j/core/script/ScriptManager.html   |   236 +
 .../logging/log4j/core/script/ScriptRef.html       |   227 +
 .../core/script/class-use/AbstractScript.html      |   326 +
 .../log4j/core/script/class-use/Script.html        |    91 +
 .../log4j/core/script/class-use/ScriptFile.html    |    93 +
 .../log4j/core/script/class-use/ScriptManager.html |   131 +
 .../log4j/core/script/class-use/ScriptRef.html     |    90 +
 .../logging/log4j/core/script/package-summary.html |   123 +
 .../logging/log4j/core/script/package-tree.html    |    83 +
 .../logging/log4j/core/script/package-use.html     |   210 +
 .../log4j/core/selector/BasicContextSelector.html  |   357 +
 .../core/selector/ClassLoaderContextSelector.html  |   476 +
 .../log4j/core/selector/ContextSelector.html       |   383 +
 .../log4j/core/selector/CoreContextSelectors.html  |   161 +
 .../log4j/core/selector/JndiContextSelector.html   |   444 +
 .../log4j/core/selector/NamedContextSelector.html  |   184 +
 .../selector/class-use/BasicContextSelector.html   |    62 +
 .../class-use/ClassLoaderContextSelector.html      |   111 +
 .../core/selector/class-use/ContextSelector.html   |   215 +
 .../selector/class-use/CoreContextSelectors.html   |    62 +
 .../selector/class-use/JndiContextSelector.html    |    62 +
 .../selector/class-use/NamedContextSelector.html   |    91 +
 .../log4j/core/selector/package-summary.html       |   131 +
 .../logging/log4j/core/selector/package-tree.html  |    89 +
 .../logging/log4j/core/selector/package-use.html   |   168 +
 .../apache/logging/log4j/core/time/Instant.html    |   226 +
 .../logging/log4j/core/time/MutableInstant.html    |   462 +
 .../logging/log4j/core/time/PreciseClock.html      |   153 +
 .../logging/log4j/core/time/class-use/Instant.html |   213 +
 .../log4j/core/time/class-use/MutableInstant.html  |   107 +
 .../log4j/core/time/class-use/PreciseClock.html    |    62 +
 .../logging/log4j/core/time/package-summary.html   |   119 +
 .../logging/log4j/core/time/package-tree.html      |    91 +
 .../logging/log4j/core/time/package-use.html       |   179 +
 .../core/tools/BasicCommandLineArguments.html      |   172 +
 .../log4j/core/tools/CustomLoggerGenerator.html    |   171 +
 .../log4j/core/tools/ExtendedLoggerGenerator.html  |   171 +
 .../log4j/core/tools/Generate.CustomLogger.html    |   152 +
 .../log4j/core/tools/Generate.ExtendedLogger.html  |   153 +
 .../apache/logging/log4j/core/tools/Generate.html  |   215 +
 .../tools/class-use/BasicCommandLineArguments.html |    62 +
 .../tools/class-use/CustomLoggerGenerator.html     |    62 +
 .../tools/class-use/ExtendedLoggerGenerator.html   |    62 +
 .../tools/class-use/Generate.CustomLogger.html     |    62 +
 .../tools/class-use/Generate.ExtendedLogger.html   |    62 +
 .../log4j/core/tools/class-use/Generate.html       |    62 +
 .../logging/log4j/core/tools/package-summary.html  |   128 +
 .../logging/log4j/core/tools/package-tree.html     |    81 +
 .../logging/log4j/core/tools/package-use.html      |    62 +
 .../AbstractWatcher.ReconfigurationRunnable.html   |   179 +
 .../logging/log4j/core/util/AbstractWatcher.html   |   318 +
 .../apache/logging/log4j/core/util/ArrayUtils.html |   255 +
 .../org/apache/logging/log4j/core/util/Assert.html |   233 +
 .../log4j/core/util/AuthorizationProvider.html     |   134 +
 .../core/util/BasicAuthorizationProvider.html      |   244 +
 .../apache/logging/log4j/core/util/Booleans.html   |   153 +
 .../apache/logging/log4j/core/util/Builder.html    |   187 +
 .../logging/log4j/core/util/CachedClock.html       |   170 +
 .../logging/log4j/core/util/Cancellable.html       |   145 +
 .../org/apache/logging/log4j/core/util/Clock.html  |   145 +
 .../logging/log4j/core/util/ClockFactory.html      |   204 +
 .../log4j/core/util/CloseShieldOutputStream.html   |   251 +
 .../logging/log4j/core/util/CloseShieldWriter.html |   230 +
 .../org/apache/logging/log4j/core/util/Closer.html |   169 +
 .../logging/log4j/core/util/CoarseCachedClock.html |   172 +
 .../apache/logging/log4j/core/util/Constants.html  |   434 +
 .../log4j/core/util/ContextDataProvider.html       |   188 +
 .../logging/log4j/core/util/CronExpression.html    |  1079 +
 .../logging/log4j/core/util/CyclicBuffer.html      |   221 +
 .../core/util/DefaultShutdownCallbackRegistry.html |   387 +
 .../logging/log4j/core/util/DummyNanoClock.html    |   193 +
 .../logging/log4j/core/util/ExecutorServices.html  |   198 +
 .../log4j/core/util/ExtensionLanguageMapping.html  |   441 +
 .../apache/logging/log4j/core/util/FileUtils.html  |   249 +
 .../logging/log4j/core/util/FileWatcher.html       |   155 +
 .../apache/logging/log4j/core/util/IOUtils.html    |   321 +
 .../apache/logging/log4j/core/util/Integers.html   |   194 +
 .../apache/logging/log4j/core/util/JndiCloser.html |   179 +
 .../apache/logging/log4j/core/util/JsonUtils.html  |   169 +
 .../log4j/core/util/KeyValuePair.Builder.html      |   204 +
 .../logging/log4j/core/util/KeyValuePair.html      |   300 +
 .../org/apache/logging/log4j/core/util/Loader.html |   468 +
 .../logging/log4j/core/util/Log4jThread.html       |   232 +
 .../log4j/core/util/Log4jThreadFactory.html        |   230 +
 .../apache/logging/log4j/core/util/NameUtil.html   |   162 +
 .../apache/logging/log4j/core/util/NanoClock.html  |   141 +
 .../apache/logging/log4j/core/util/NetUtils.html   |   222 +
 .../logging/log4j/core/util/NullOutputStream.html  |   261 +
 .../log4j/core/util/ObjectArrayIterator.html       |   358 +
 .../logging/log4j/core/util/OptionConverter.html   |   344 +
 .../logging/log4j/core/util/PasswordDecryptor.html |   130 +
 .../apache/logging/log4j/core/util/Patterns.html   |   218 +
 .../logging/log4j/core/util/ReflectionUtil.html    |   360 +
 .../logging/log4j/core/util/SecretKeyProvider.html |   137 +
 .../log4j/core/util/ShutdownCallbackRegistry.html  |   228 +
 .../org/apache/logging/log4j/core/util/Source.html |   387 +
 .../log4j/core/util/StringBuilderWriter.html       |   415 +
 .../logging/log4j/core/util/StringEncoder.html     |   237 +
 .../logging/log4j/core/util/SystemClock.html       |   178 +
 .../logging/log4j/core/util/SystemMillisClock.html |   182 +
 .../logging/log4j/core/util/SystemNanoClock.html   |   178 +
 .../apache/logging/log4j/core/util/Throwables.html |   182 +
 .../apache/logging/log4j/core/util/Transform.html  |   195 +
 .../apache/logging/log4j/core/util/TypeUtil.html   |   196 +
 .../apache/logging/log4j/core/util/UuidUtil.html   |   196 +
 .../logging/log4j/core/util/WatchEventService.html |   138 +
 .../logging/log4j/core/util/WatchManager.html      |   481 +
 .../apache/logging/log4j/core/util/Watcher.html    |   303 +
 .../logging/log4j/core/util/WatcherFactory.html    |   173 +
 .../log4j/core/util/WrappedFileWatcher.html        |   353 +
 .../AbstractWatcher.ReconfigurationRunnable.html   |    62 +
 .../log4j/core/util/class-use/AbstractWatcher.html |   112 +
 .../log4j/core/util/class-use/ArrayUtils.html      |    62 +
 .../logging/log4j/core/util/class-use/Assert.html  |    62 +
 .../core/util/class-use/AuthorizationProvider.html |   133 +
 .../util/class-use/BasicAuthorizationProvider.html |    62 +
 .../log4j/core/util/class-use/Booleans.html        |    62 +
 .../logging/log4j/core/util/class-use/Builder.html |   742 +
 .../log4j/core/util/class-use/CachedClock.html     |    89 +
 .../log4j/core/util/class-use/Cancellable.html     |   112 +
 .../logging/log4j/core/util/class-use/Clock.html   |   193 +
 .../log4j/core/util/class-use/ClockFactory.html    |    62 +
 .../util/class-use/CloseShieldOutputStream.html    |    62 +
 .../core/util/class-use/CloseShieldWriter.html     |    62 +
 .../logging/log4j/core/util/class-use/Closer.html  |    62 +
 .../core/util/class-use/CoarseCachedClock.html     |    91 +
 .../log4j/core/util/class-use/Constants.html       |    62 +
 .../core/util/class-use/ContextDataProvider.html   |   102 +
 .../log4j/core/util/class-use/CronExpression.html  |   145 +
 .../log4j/core/util/class-use/CyclicBuffer.html    |    62 +
 .../class-use/DefaultShutdownCallbackRegistry.html |    62 +
 .../log4j/core/util/class-use/DummyNanoClock.html  |    62 +
 .../core/util/class-use/ExecutorServices.html      |    62 +
 .../util/class-use/ExtensionLanguageMapping.html   |   109 +
 .../log4j/core/util/class-use/FileUtils.html       |    62 +
 .../log4j/core/util/class-use/FileWatcher.html     |   170 +
 .../logging/log4j/core/util/class-use/IOUtils.html |    62 +
 .../log4j/core/util/class-use/Integers.html        |    62 +
 .../log4j/core/util/class-use/JndiCloser.html      |    62 +
 .../log4j/core/util/class-use/JsonUtils.html       |    62 +
 .../core/util/class-use/KeyValuePair.Builder.html  |    95 +
 .../log4j/core/util/class-use/KeyValuePair.html    |   266 +
 .../logging/log4j/core/util/class-use/Loader.html  |    62 +
 .../log4j/core/util/class-use/Log4jThread.html     |    62 +
 .../core/util/class-use/Log4jThreadFactory.html    |    96 +
 .../log4j/core/util/class-use/NameUtil.html        |    62 +
 .../log4j/core/util/class-use/NanoClock.html       |   209 +
 .../log4j/core/util/class-use/NetUtils.html        |    62 +
 .../core/util/class-use/NullOutputStream.html      |   104 +
 .../core/util/class-use/ObjectArrayIterator.html   |    62 +
 .../log4j/core/util/class-use/OptionConverter.html |    62 +
 .../core/util/class-use/PasswordDecryptor.html     |    62 +
 .../log4j/core/util/class-use/Patterns.html        |    62 +
 .../log4j/core/util/class-use/ReflectionUtil.html  |    62 +
 .../core/util/class-use/SecretKeyProvider.html     |    62 +
 .../util/class-use/ShutdownCallbackRegistry.html   |   140 +
 .../logging/log4j/core/util/class-use/Source.html  |   186 +
 .../core/util/class-use/StringBuilderWriter.html   |    62 +
 .../log4j/core/util/class-use/StringEncoder.html   |    62 +
 .../log4j/core/util/class-use/SystemClock.html     |    62 +
 .../core/util/class-use/SystemMillisClock.html     |    62 +
 .../log4j/core/util/class-use/SystemNanoClock.html |    62 +
 .../log4j/core/util/class-use/Throwables.html      |    62 +
 .../log4j/core/util/class-use/Transform.html       |    62 +
 .../log4j/core/util/class-use/TypeUtil.html        |    62 +
 .../log4j/core/util/class-use/UuidUtil.html        |    62 +
 .../core/util/class-use/WatchEventService.html     |    62 +
 .../log4j/core/util/class-use/WatchManager.html    |   135 +
 .../logging/log4j/core/util/class-use/Watcher.html |   195 +
 .../log4j/core/util/class-use/WatcherFactory.html  |    89 +
 .../core/util/class-use/WrappedFileWatcher.html    |    62 +
 .../log4j/core/util/datetime/DatePrinter.html      |   362 +
 .../log4j/core/util/datetime/FastDateFormat.html   |  1147 +
 .../log4j/core/util/datetime/FastDatePrinter.html  |   745 +
 .../util/datetime/FixedDateFormat.FixedFormat.html |   588 +
 .../FixedDateFormat.FixedTimeZoneFormat.html       |   252 +
 .../log4j/core/util/datetime/FixedDateFormat.html  |   339 +
 .../logging/log4j/core/util/datetime/Format.html   |   181 +
 .../core/util/datetime/class-use/DatePrinter.html  |    98 +
 .../util/datetime/class-use/FastDateFormat.html    |   220 +
 .../util/datetime/class-use/FastDatePrinter.html   |    62 +
 .../class-use/FixedDateFormat.FixedFormat.html     |   119 +
 .../FixedDateFormat.FixedTimeZoneFormat.html       |   102 +
 .../util/datetime/class-use/FixedDateFormat.html   |   100 +
 .../log4j/core/util/datetime/class-use/Format.html |    92 +
 .../log4j/core/util/datetime/package-summary.html  |   140 +
 .../log4j/core/util/datetime/package-tree.html     |   103 +
 .../log4j/core/util/datetime/package-use.html      |   110 +
 .../logging/log4j/core/util/package-summary.html   |   346 +
 .../logging/log4j/core/util/package-tree.html      |   177 +
 .../logging/log4j/core/util/package-use.html       |   664 +
 javadoc/log4j-core/overview-summary.html           |    25 +
 javadoc/log4j-core/overview-tree.html              |  1256 +
 javadoc/log4j-core/package-search-index.js         |     1 +
 javadoc/log4j-core/resources/glass.png             |   Bin 0 -> 499 bytes
 javadoc/log4j-core/resources/x.png                 |   Bin 0 -> 394 bytes
 javadoc/log4j-core/script-dir/jquery-3.6.1.min.js  |     2 +
 javadoc/log4j-core/script-dir/jquery-ui.min.css    |     6 +
 javadoc/log4j-core/script-dir/jquery-ui.min.js     |     6 +
 javadoc/log4j-core/script.js                       |   132 +
 javadoc/log4j-core/search.js                       |   354 +
 javadoc/log4j-core/serialized-form.html            |  1252 +
 javadoc/log4j-core/stylesheet.css                  |   869 +
 javadoc/log4j-core/tag-search-index.js             |     1 +
 javadoc/log4j-core/type-search-index.js            |     1 +
 javadoc/log4j-jakarta-web/allclasses-index.html    |   108 +
 javadoc/log4j-jakarta-web/allpackages-index.html   |    70 +
 javadoc/log4j-jakarta-web/constant-values.html     |    94 +
 javadoc/log4j-jakarta-web/element-list             |     1 +
 javadoc/log4j-jakarta-web/help-doc.html            |   184 +
 javadoc/log4j-jakarta-web/index-all.html           |   239 +
 javadoc/log4j-jakarta-web/index.html               |    25 +
 javadoc/log4j-jakarta-web/jquery-ui.overrides.css  |    35 +
 .../legal/ADDITIONAL_LICENSE_INFO                  |    37 +
 javadoc/log4j-jakarta-web/legal/ASSEMBLY_EXCEPTION |    27 +
 javadoc/log4j-jakarta-web/legal/LICENSE            |   347 +
 javadoc/log4j-jakarta-web/legal/jquery.md          |    72 +
 javadoc/log4j-jakarta-web/legal/jqueryUI.md        |    49 +
 javadoc/log4j-jakarta-web/member-search-index.js   |     1 +
 javadoc/log4j-jakarta-web/module-search-index.js   |     1 +
 .../web/Log4jServletContainerInitializer.html      |   178 +
 .../log4j/web/Log4jServletContextListener.html     |   186 +
 .../logging/log4j/web/Log4jServletFilter.html      |   217 +
 .../Log4jShutdownOnContextDestroyedListener.html   |   183 +
 .../apache/logging/log4j/web/Log4jWebSupport.html  |   329 +
 .../log4j/web/ServletRequestThreadContext.html     |   198 +
 .../logging/log4j/web/WebLoggerContextUtils.html   |   260 +
 .../org/apache/logging/log4j/web/WebLookup.html    |   186 +
 .../Log4jServletContainerInitializer.html          |    60 +
 .../web/class-use/Log4jServletContextListener.html |    60 +
 .../log4j/web/class-use/Log4jServletFilter.html    |    60 +
 .../Log4jShutdownOnContextDestroyedListener.html   |    60 +
 .../log4j/web/class-use/Log4jWebSupport.html       |    60 +
 .../web/class-use/ServletRequestThreadContext.html |    60 +
 .../log4j/web/class-use/WebLoggerContextUtils.html |    60 +
 .../logging/log4j/web/class-use/WebLookup.html     |    60 +
 .../apache/logging/log4j/web/package-summary.html  |   138 +
 .../org/apache/logging/log4j/web/package-tree.html |    86 +
 .../org/apache/logging/log4j/web/package-use.html  |    60 +
 javadoc/log4j-jakarta-web/overview-tree.html       |    90 +
 javadoc/log4j-jakarta-web/package-search-index.js  |     1 +
 javadoc/log4j-jakarta-web/resources/glass.png      |   Bin 0 -> 499 bytes
 javadoc/log4j-jakarta-web/resources/x.png          |   Bin 0 -> 394 bytes
 .../script-dir/jquery-3.6.1.min.js                 |     2 +
 .../log4j-jakarta-web/script-dir/jquery-ui.min.css |     6 +
 .../log4j-jakarta-web/script-dir/jquery-ui.min.js  |     6 +
 javadoc/log4j-jakarta-web/script.js                |   132 +
 javadoc/log4j-jakarta-web/search.js                |   354 +
 javadoc/log4j-jakarta-web/stylesheet.css           |   869 +
 javadoc/log4j-jakarta-web/tag-search-index.js      |     1 +
 javadoc/log4j-jakarta-web/type-search-index.js     |     1 +
 javadoc/log4j-jpa/allclasses-index.html            |   142 +
 javadoc/log4j-jpa/allpackages-index.html           |    75 +
 javadoc/log4j-jpa/element-list                     |     2 +
 javadoc/log4j-jpa/help-doc.html                    |   190 +
 javadoc/log4j-jpa/index-all.html                   |   442 +
 javadoc/log4j-jpa/index.html                       |    77 +
 javadoc/log4j-jpa/jquery-ui.overrides.css          |    35 +
 javadoc/log4j-jpa/legal/ADDITIONAL_LICENSE_INFO    |    37 +
 javadoc/log4j-jpa/legal/ASSEMBLY_EXCEPTION         |    27 +
 javadoc/log4j-jpa/legal/LICENSE                    |   347 +
 javadoc/log4j-jpa/legal/jquery.md                  |    72 +
 javadoc/log4j-jpa/legal/jqueryUI.md                |    49 +
 javadoc/log4j-jpa/member-search-index.js           |     1 +
 javadoc/log4j-jpa/module-search-index.js           |     1 +
 .../db/jpa/AbstractLogEventWrapperEntity.html      |   621 +
 .../core/appender/db/jpa/BasicLogEventEntity.html  |   512 +
 .../log4j/core/appender/db/jpa/JpaAppender.html    |   251 +
 .../core/appender/db/jpa/JpaDatabaseManager.html   |   257 +
 .../class-use/AbstractLogEventWrapperEntity.html   |   114 +
 .../db/jpa/class-use/BasicLogEventEntity.html      |    61 +
 .../appender/db/jpa/class-use/JpaAppender.html     |    95 +
 .../db/jpa/class-use/JpaDatabaseManager.html       |    94 +
 .../converter/ContextDataAttributeConverter.html   |   189 +
 .../ContextDataJsonAttributeConverter.html         |   190 +
 .../converter/ContextMapAttributeConverter.html    |   189 +
 .../ContextMapJsonAttributeConverter.html          |   190 +
 .../converter/ContextStackAttributeConverter.html  |   190 +
 .../ContextStackJsonAttributeConverter.html        |   191 +
 .../jpa/converter/InstantAttributeConverter.html   |   186 +
 .../db/jpa/converter/LevelAttributeConverter.html  |   186 +
 .../db/jpa/converter/MarkerAttributeConverter.html |   186 +
 .../jpa/converter/MessageAttributeConverter.html   |   186 +
 .../StackTraceElementAttributeConverter.html       |   186 +
 .../jpa/converter/ThrowableAttributeConverter.html |   186 +
 .../class-use/ContextDataAttributeConverter.html   |    61 +
 .../ContextDataJsonAttributeConverter.html         |    61 +
 .../class-use/ContextMapAttributeConverter.html    |    61 +
 .../ContextMapJsonAttributeConverter.html          |    61 +
 .../class-use/ContextStackAttributeConverter.html  |    61 +
 .../ContextStackJsonAttributeConverter.html        |    61 +
 .../class-use/InstantAttributeConverter.html       |    61 +
 .../class-use/LevelAttributeConverter.html         |    61 +
 .../class-use/MarkerAttributeConverter.html        |    61 +
 .../class-use/MessageAttributeConverter.html       |    61 +
 .../StackTraceElementAttributeConverter.html       |    61 +
 .../class-use/ThrowableAttributeConverter.html     |    61 +
 .../appender/db/jpa/converter/package-summary.html |   166 +
 .../appender/db/jpa/converter/package-tree.html    |    86 +
 .../appender/db/jpa/converter/package-use.html     |    61 +
 .../core/appender/db/jpa/package-summary.html      |   125 +
 .../log4j/core/appender/db/jpa/package-tree.html   |   105 +
 .../log4j/core/appender/db/jpa/package-use.html    |    97 +
 javadoc/log4j-jpa/overview-summary.html            |    25 +
 javadoc/log4j-jpa/overview-tree.html               |   118 +
 javadoc/log4j-jpa/package-search-index.js          |     1 +
 javadoc/log4j-jpa/resources/glass.png              |   Bin 0 -> 499 bytes
 javadoc/log4j-jpa/resources/x.png                  |   Bin 0 -> 394 bytes
 javadoc/log4j-jpa/script-dir/jquery-3.6.1.min.js   |     2 +
 javadoc/log4j-jpa/script-dir/jquery-ui.min.css     |     6 +
 javadoc/log4j-jpa/script-dir/jquery-ui.min.js      |     6 +
 javadoc/log4j-jpa/script.js                        |   132 +
 javadoc/log4j-jpa/search.js                        |   354 +
 javadoc/log4j-jpa/serialized-form.html             |   103 +
 javadoc/log4j-jpa/stylesheet.css                   |   869 +
 javadoc/log4j-jpa/tag-search-index.js              |     1 +
 javadoc/log4j-jpa/type-search-index.js             |     1 +
 log4j-iostreams.html                               |   436 +
 log4j-jul.html                                     |   878 +
 log4j-spring-boot.html                             |   479 +
 log4j-spring-cloud-config-client.html              |   555 +
 log4j-to-jul.html                                  |   466 +
 manual/api.html                                    |  1314 +
 manual/appenders.html                              |  1596 ++
 manual/appenders/database.html                     |  3619 +++
 manual/appenders/delegating.html                   |  2582 ++
 manual/appenders/file.html                         |   748 +
 manual/appenders/message-queue.html                |  2343 ++
 manual/appenders/network.html                      |  2026 ++
 manual/appenders/rolling-file.html                 |  3183 +++
 manual/architecture.html                           |  1040 +
 manual/async.html                                  |  1594 ++
 manual/compatibility.html                          |   390 +
 manual/config-intro.html                           |   406 +
 manual/configuration.html                          |  3277 +++
 manual/customconfig.html                           |   911 +
 manual/customloglevels.html                        |   937 +
 manual/eventlogging.html                           |   444 +
 manual/extending.html                              |   648 +
 manual/filters.html                                |  3231 +++
 manual/flowtracing.html                            |   936 +
 manual/garbagefree.html                            |  1132 +
 manual/getting-started.html                        |  1342 ++
 manual/implementation.html                         |   417 +
 manual/index.html                                  |   531 +
 manual/installation.html                           |  1575 ++
 manual/jmx.html                                    |   526 +
 manual/json-template-layout.html                   |  3504 +++
 manual/layouts.html                                |  2186 ++
 manual/logbuilder.html                             |   584 +
 manual/lookups.html                                |  2366 ++
 manual/markers.html                                |   720 +
 manual/messages.html                               |  1087 +
 manual/pattern-layout.html                         |  2966 +++
 manual/performance.html                            |   776 +
 manual/plugins.html                                |   830 +
 manual/scripts.html                                |   800 +
 manual/simple-logger.html                          |   777 +
 manual/status-logger.html                          |   684 +
 manual/systemproperties.html                       |  3455 +++
 manual/thread-context.html                         |   629 +
 migrate-from-log4j1.html                           |  1484 ++
 migrate-from-logback.html                          |   670 +
 migrate-from-slf4j.html                            |   545 +
 plugin-reference.html                              | 23932 +++++++++++++++++++
 release-notes.html                                 | 10277 ++++++++
 sitemap.xml                                        |   235 +
 soa.html                                           |   852 +
 2230 files changed, 604226 insertions(+), 1 deletion(-)

diff --git a/.htaccess b/.htaccess
new file mode 100644
index 0000000000..e181ccd394
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1,76 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+RewriteEngine On
+RewriteBase "/log4j/2.x/"
+
+##
+# To simplify the redirection rules, we normalized them:
+#
+# 1. If the request URIs ends in `/` (necessarily a `path-info`), we add `index.html` to it:
+RewriteRule "^(.*)/$" "$1/index.html" [DPI]
+# 2. If the request URI points to a (non-existent) file, we try adding `.html`:
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteCond $1 "!\.html$"
+RewriteRule "^(.+)$" "$1.html"
+#
+# From this point rules match against the URI to the real file, with "/log4j/2.x/" stripped.
+
+# The content moved between pages
+RewriteRule "^articles\.html$" "manual/index.html" [R=permanent]
+RewriteRule "^log4j-1\.2-api(/index)?\.html$" "manual/migration.html" [R=permanent]
+RewriteRule "^log4j-api/apidocs(.*)$" "javadoc/log4j-api$1" [R=permanent]
+RewriteRule "^log4j-api(/index)?\.html$" "manual/api.html" [R=permanent]
+RewriteRule "^log4j-appserver(/index)?\.html$" "manual/webapp.html#replace" [R=permanent,NE]
+RewriteRule "^log4j-cassandra(/index)?\.html$" "manual/appenders/database.html#CassandraAppender" [R=permanent,NE]
+RewriteRule "^log4j-core/apidocs(.*)$" "javadoc/log4j-core$1" [R=permanent]
+RewriteRule "^log4j-couchdb(/index)?\.html$" "manual/appenders/database.html#CouchDbProvider" [R=permanent,NE]
+RewriteRule "^log4j-docker(/index)?\.html$" "manual/lookups.html#DockerLookup" [R=permanent,NE]
+RewriteRule "^log4j-flume-ng(/index)?\.html$" "manual/appenders/message-queue.html#FlumeAppender" [R=permanent,NE]
+RewriteRule "^log4j(-jakarta)?-web(/index)?\.html$" "manual/webapp.html" [R=permanent]
+RewriteRule "^log4j-jcl(/index)?\.html$" "manual/installation.html#impl-core-bridge-jcl" [R=permanent,NE]
+RewriteRule "^log4j-jmx-gui(/index)?\.html$" "/log4j/jmx-gui/latest/index.html" [R=permanent]
+RewriteRule "^log4j-jpl(/index)?\.html$" "manual/installation.html#impl-core-bridge-jpl" [R=permanent,NE]
+RewriteRule "^log4j-kubernetes(/index)?\.html$" "https://github.com/fabric8io/kubernetes-client/blob/main/doc/KubernetesLog4j.md" [R=permanent]
+RewriteRule "^log4j-mongodb3(/index)?\.html$" "manual/appenders.html#NoSQLProvider-MongoDB" [R=permanent,NE]
+RewriteRule "^log4j-mongodb4(/index)?\.html$" "manual/appenders.html#MongoDb4Provider" [R=permanent,NE]
+RewriteRule "^log4j-slf4j2?-impl(/index)?\.html$" "manual/installation.html#impl-core-bridge-slf4j" [R=permanent,NE]
+RewriteRule "^log4j-spring-cloud-config(/index)?\.html$" "log4j-spring-cloud-config-client.html" [R=permanent]
+RewriteRule "^log4j-taglib(/index)?\.html$" "manual/webapp.html#log4j-taglib" [R=permanent,NE]
+RewriteRule "^manual/api-separation\.html$" "manual/api.html" [R=permanent]
+RewriteRule "^manual/cloud\.html$" "soa.html" [R=permanent]
+RewriteRule "^manual/logsep\.html$" "jakarta.html#log-separation" [R=permanent,NE]
+RewriteRule "^manual/migration\.html$" "migrate-from-log4j1.html" [R=permanent]
+RewriteRule "^manual/scala-api\.html$" "/log4j/scala/latest/index.html" [R=permanent]
+RewriteRule "^manual/usage\.html$" "manual/api.html" [R=permanent]
+RewriteRule "^manual/webapp\.html$" "jakarta.html" [R=permanent]
+RewriteRule "^runtime-dependencies\.html$" "manual/installation.html" [R=permanent]
+RewriteRule "^thanks\.html$" "/support.html#sponsors" [R=permanent,NE]
+
+# These redirects are special, since:
+#
+# 1. `mod_negotiate` is active and it is applied before `mod_rewrite`,
+# 2. we replaced a directory like `log4j-api/` with a file that has the same prefix like `log4j-api.html`,
+#
+# if the URI path is `/log4j/2.x/log4j-api/foo` we must match `log4j-api.html/foo`.
+RewriteRule "^log4j-iostreams\.html/index\.html$" "log4j-iostreams.html" [R=permanent]
+RewriteRule "^log4j-jul\.html/index\.html$" "log4j-jul.html" [R=permanent,NE]
+RewriteRule "^log4j-spring-boot\.html/index\.html$" "log4j-spring-boot.html" [R=permanent]
+RewriteRule "^log4j-spring-cloud-config-client\.html/index\.html$" "log4j-spring-cloud-config-client.html" [R=permanent]
+RewriteRule "^log4j-to-jul\.html/index\.html$" "log4j-to-jul.html" [R=permanent]
+RewriteRule "^release-notes\.html/index\.html$" "release-notes.html" [R=permanent]
diff --git a/404.html b/404.html
new file mode 100644
index 0000000000..0b576c4692
--- /dev/null
+++ b/404.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>Page Not Found :: Apache Log4j</title>
+    <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="/log4j/2.x/_/css/site.css">
+<link rel="icon" href="/log4j/2.x/_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="/log4j/2.x/_/css/vendor/tabs.css">
+<style>
+  /* Swap colors of `IMPORTANT` and `WARNING` blocks */ 
+  .doc .admonitionblock.important .icon { background-color: #f70; }
+  .doc .admonitionblock.warning .icon { background-color: #e40046; }
+  /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+  .doc h1 { font-size: 1.9rem; }
+  .doc h2 { font-size: 1.7rem; }
+  .doc h3 { font-size: 1.5rem; font-weight: 400; }
+  .doc h4 { font-size: 1.3rem; font-weight: 500; }
+  .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+  .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+  /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+  .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+  .doc pre { font-size: 0.7rem; }
+  .doc .colist { font-size: 0.75rem; }
+  /* Make links more visible: */
+  .doc a { text-decoration: underline; }
+  .doc a code { text-decoration: underline; color: #1565c0; }
+  /* Tab header fonts aren't rendered good, adjusting the font weight: */
+  .tablist > ul li { font-weight: 500; }
+  /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+  .toc .toc-menu li[data-level="4"] a {
+    padding-left: 2.75rem;
+  }
+  /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+  .hljs-string {
+    color: #0f8532;
+  }
+</style>
+  </head>
+  <body class="status-404">
+<header class="header">
+  <nav class="navbar">
+    <div class="navbar-brand">
+      <div class="navbar-item">
+        <img src="/log4j/2.x/_/../_images/logo-small-white.png" alt="Apache Log4j"/>
+      </div>
+    </div>
+    <div id="topbar-nav" class="navbar-menu">
+      <div class="navbar-end">
+        <a class="navbar-item" href="https://logging.apache.org">a subproject of&nbsp;<strong>Apache Logging Services</strong></a>
+      </div>
+    </div>
+  </nav>
+</header>
+<div class="body">
+<div class="nav-container">
+  <aside class="nav">
+    <div class="panels">
+    </div>
+  </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+  <a href="/log4j/2.x/index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4j2/edit/2.x/src/site/antora/modules//pages/">Edit this Page</a></div>
+</div>
+  <div class="content">
+<article class="doc">
+<h1 class="page">Page Not Found</h1>
+<div class="paragraph">
+<p>The page you&#8217;re looking for does not exist. It may have been moved. You can return to the <a href="/index.html">start page</a>, or follow one of the links in the navigation to the left.</p>
+</div>
+<div class="paragraph">
+<p>If you arrived on this page by clicking on a link, please notify the owner of the site that the link is broken.
+If you typed the URL of this page manually, please double check that you entered the address correctly.</p>
+</div>
+</article>
+  </div>
+</main>
+</div>
+<footer class="footer">
+  <p>
+    Copyright © 1999-2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+    Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+    Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+  </p>
+  <p>
+    Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+    Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+    Other names may be trademarks of their respective owners.
+  </p>
+</footer>
+<!-- Matomo -->
+<script>
+  var _paq = window._paq = window._paq || [];
+  _paq.push(["disableCookies"]);
+  _paq.push(['trackPageView']);
+  _paq.push(['enableLinkTracking']);
+  (function() {
+    var u="https://analytics.apache.org/";
+    _paq.push(['setTrackerUrl', u+'matomo.php']);
+    _paq.push(['setSiteId', '42']);
+    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+  })();
+</script>
+<noscript><p><img src="https://analytics.apache.org/matomo.php?idsite=42&amp;rec=1" style="border:0;" alt="" /></p></noscript>
+<!-- End Matomo Code -->
+<script id="site-script" src="/log4j/2.x/_/js/site.js" data-ui-root-path="/log4j/2.x/_"></script>
+<script async src="/log4j/2.x/_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="/log4j/2.x/_/js/vendor/tabs.js"></script>
+  </body>
+</html>
diff --git a/README.txt b/README.txt
deleted file mode 100644
index 391903d180..0000000000
--- a/README.txt
+++ /dev/null
@@ -1 +0,0 @@
-Content for initializing an orphan branch for the website to be generated from `35b8e024734dadfb69f50e04ad288814ed70f6ca`
diff --git a/_/css/site.css b/_/css/site.css
new file mode 100644
index 0000000000..b502bd6a19
--- /dev/null
+++ b/_/css/site.css
@@ -0,0 +1,3 @@
+@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(../font/roboto-latin-400-normal.woff2) format("woff2"),url(../font/roboto-latin-400-normal.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(../font/roboto-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-04 [...]
+
+/*! Adapted from the GitHub style by Vasily Polovnyov <va...@whiteants.net> */.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:600}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:600}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-wei [...]
\ No newline at end of file
diff --git a/_/css/vendor/tabs.css b/_/css/vendor/tabs.css
new file mode 100644
index 0000000000..00771c4e21
--- /dev/null
+++ b/_/css/vendor/tabs.css
@@ -0,0 +1,110 @@
+/*! Asciidoctor Tabs | Copyright (c) 2018-present Dan Allen | MIT License */
+.tabs {
+  margin-bottom: 1.25em;
+}
+
+.tablist > ul {
+  display: flex;
+  flex-wrap: wrap;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+
+.tablist > ul li {
+  align-items: center;
+  background-color: #fff;
+  cursor: pointer;
+  display: flex;
+  font-weight: bold;
+  line-height: 1.5;
+  padding: 0.25em 1em;
+  position: relative;
+}
+
+.tablist > ul li:focus-visible {
+  outline: none;
+}
+
+.tablist.ulist,
+.tablist.ulist > ul li {
+  margin: 0;
+}
+
+.tablist.ulist > ul li + li {
+  margin-left: 0.25em;
+}
+
+.tabs .tablist li::after {
+  content: "";
+  display: block;
+  height: 1px;
+  position: absolute;
+  bottom: -1px;
+  left: 0;
+  right: 0;
+}
+
+.tabs.is-loading .tablist li:not(:first-child),
+.tabs:not(.is-loading) .tablist li:not(.is-selected) {
+  background-color: #f5f5f5;
+}
+
+.tabs.is-loading .tablist li:first-child::after,
+.tabs:not(.is-loading) .tablist li.is-selected::after {
+  background-color: #fff;
+}
+
+/*
+.tabs:not(.is-loading) .tablist li,
+.tabs:not(.is-loading) .tablist li::after {
+  transition: background-color 200ms ease-in-out;
+}
+*/
+
+.tablist > ul p {
+  line-height: inherit;
+  margin: 0;
+}
+
+.tabpanel {
+  background-color: #fff;
+  padding: 1.25em;
+}
+
+.tablist > ul li,
+.tabpanel {
+  border: 1px solid #dcdcdc;
+}
+
+.tablist > ul li {
+  border-bottom: 0;
+}
+
+.tabs.is-loading .tabpanel + .tabpanel,
+.tabs:not(.is-loading) .tabpanel.is-hidden {
+  display: none;
+}
+
+.tabpanel > :first-child {
+  margin-top: 0;
+}
+
+/* #content is a signature of the Asciidoctor standalone HTML output */
+#content .tabpanel > :last-child,
+#content .tabpanel > :last-child > :last-child,
+#content .tabpanel > :last-child > :last-child > li:last-child > :last-child {
+  margin-bottom: 0;
+}
+
+.tablecontainer {
+  overflow-x: auto;
+}
+
+#content .tablecontainer {
+  margin-bottom: 1.25em;
+}
+
+#content .tablecontainer > table.tableblock {
+  margin-bottom: 0;
+}
diff --git a/_/font/roboto-cyrillic-400-italic.woff2 b/_/font/roboto-cyrillic-400-italic.woff2
new file mode 100644
index 0000000000..dd587a2bcb
Binary files /dev/null and b/_/font/roboto-cyrillic-400-italic.woff2 differ
diff --git a/_/font/roboto-cyrillic-400-normal.woff2 b/_/font/roboto-cyrillic-400-normal.woff2
new file mode 100644
index 0000000000..47da362999
Binary files /dev/null and b/_/font/roboto-cyrillic-400-normal.woff2 differ
diff --git a/_/font/roboto-cyrillic-500-italic.woff2 b/_/font/roboto-cyrillic-500-italic.woff2
new file mode 100644
index 0000000000..cbe564b07f
Binary files /dev/null and b/_/font/roboto-cyrillic-500-italic.woff2 differ
diff --git a/_/font/roboto-cyrillic-500-normal.woff2 b/_/font/roboto-cyrillic-500-normal.woff2
new file mode 100644
index 0000000000..cb5834ff83
Binary files /dev/null and b/_/font/roboto-cyrillic-500-normal.woff2 differ
diff --git a/_/font/roboto-latin-400-italic.woff b/_/font/roboto-latin-400-italic.woff
new file mode 100644
index 0000000000..ebee16b9ed
Binary files /dev/null and b/_/font/roboto-latin-400-italic.woff differ
diff --git a/_/font/roboto-latin-400-italic.woff2 b/_/font/roboto-latin-400-italic.woff2
new file mode 100644
index 0000000000..e1b7a79f91
Binary files /dev/null and b/_/font/roboto-latin-400-italic.woff2 differ
diff --git a/_/font/roboto-latin-400-normal.woff b/_/font/roboto-latin-400-normal.woff
new file mode 100644
index 0000000000..9eaa94f9bf
Binary files /dev/null and b/_/font/roboto-latin-400-normal.woff differ
diff --git a/_/font/roboto-latin-400-normal.woff2 b/_/font/roboto-latin-400-normal.woff2
new file mode 100644
index 0000000000..020729ef8d
Binary files /dev/null and b/_/font/roboto-latin-400-normal.woff2 differ
diff --git a/_/font/roboto-latin-500-italic.woff b/_/font/roboto-latin-500-italic.woff
new file mode 100644
index 0000000000..b6ad1c5be1
Binary files /dev/null and b/_/font/roboto-latin-500-italic.woff differ
diff --git a/_/font/roboto-latin-500-italic.woff2 b/_/font/roboto-latin-500-italic.woff2
new file mode 100644
index 0000000000..ae1933f389
Binary files /dev/null and b/_/font/roboto-latin-500-italic.woff2 differ
diff --git a/_/font/roboto-latin-500-normal.woff b/_/font/roboto-latin-500-normal.woff
new file mode 100644
index 0000000000..d39bb52a5c
Binary files /dev/null and b/_/font/roboto-latin-500-normal.woff differ
diff --git a/_/font/roboto-latin-500-normal.woff2 b/_/font/roboto-latin-500-normal.woff2
new file mode 100644
index 0000000000..29342a8de2
Binary files /dev/null and b/_/font/roboto-latin-500-normal.woff2 differ
diff --git a/_/font/roboto-mono-latin-400-normal.woff b/_/font/roboto-mono-latin-400-normal.woff
new file mode 100644
index 0000000000..be3eb4c4cb
Binary files /dev/null and b/_/font/roboto-mono-latin-400-normal.woff differ
diff --git a/_/font/roboto-mono-latin-400-normal.woff2 b/_/font/roboto-mono-latin-400-normal.woff2
new file mode 100644
index 0000000000..f8894bab50
Binary files /dev/null and b/_/font/roboto-mono-latin-400-normal.woff2 differ
diff --git a/_/font/roboto-mono-latin-500-normal.woff b/_/font/roboto-mono-latin-500-normal.woff
new file mode 100644
index 0000000000..43ca6a1b90
Binary files /dev/null and b/_/font/roboto-mono-latin-500-normal.woff differ
diff --git a/_/font/roboto-mono-latin-500-normal.woff2 b/_/font/roboto-mono-latin-500-normal.woff2
new file mode 100644
index 0000000000..b4f2bf8c22
Binary files /dev/null and b/_/font/roboto-mono-latin-500-normal.woff2 differ
diff --git a/_/img/back.svg b/_/img/back.svg
new file mode 100644
index 0000000000..bf7d30e9ac
--- /dev/null
+++ b/_/img/back.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><path d="M50.001 9.9L9.9 50 50 90.1l5.656-5.655-30.435-30.442H90.1v-8.006H25.222l30.435-30.44z"/></svg>
\ No newline at end of file
diff --git a/_/img/caret.svg b/_/img/caret.svg
new file mode 100644
index 0000000000..1af41bc6ef
--- /dev/null
+++ b/_/img/caret.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30"><path d="M10.187 3l14 12-14 12z" fill="#c1c1c1" stroke="#c1c1c1" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/_/img/chevron.svg b/_/img/chevron.svg
new file mode 100644
index 0000000000..40e962aff3
--- /dev/null
+++ b/_/img/chevron.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30"><path d="M3.67 6.59L1.455 8.615 15 23.375l13.545-14.76L26.33 6.59 15 18.76z" fill="#5d5d5d"/></svg>
\ No newline at end of file
diff --git a/_/img/home-o.svg b/_/img/home-o.svg
new file mode 100644
index 0000000000..95d193b772
--- /dev/null
+++ b/_/img/home-o.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><g fill="none" stroke="#222" stroke-width="4"><path d="M50.02 13.576l-28.58 25.54-.02 47.345h21.506l.025-25.166H57.05l.025 25.166H78.62l.02-47.31-28.62-25.575z"/><path d="M63.815 25.904v-9.217h8.657V33.64zM21.439 39.116l-9.982 8.92m77.125 0l-9.943-8.885"/></g></svg>
\ No newline at end of file
diff --git a/_/img/home.svg b/_/img/home.svg
new file mode 100644
index 0000000000..4e96b3545c
--- /dev/null
+++ b/_/img/home.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><g stroke="#222" stroke-width="4"><path d="M50.02 13.576l-28.58 25.54-.02 47.345h21.506l.025-25.166H57.05l.025 25.166H78.62l.02-47.31-28.62-25.575z" fill="#222" fill-rule="evenodd"/><path d="M63.815 25.904v-9.217h8.657V33.64z" fill="#222" fill-rule="evenodd"/><path d="M21.439 39.116l-9.982 8.92m77.125 0l-9.943-8.885" fill="none"/></g></svg>
\ No newline at end of file
diff --git a/_/img/menu.svg b/_/img/menu.svg
new file mode 100644
index 0000000000..8b43b2e009
--- /dev/null
+++ b/_/img/menu.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M35 19.772h55" fill="none" stroke="#222" stroke-width="8" stroke-opacity=".941"/><path fill="#222" d="M10 12.272h15v15H10z"/><path d="M43 63.678h45" fill="none" stroke="#222" stroke-width="5" stroke-opacity=".941"/><path fill="#222" d="M23 58.677h10v10H23z"/><path d="M43 82.727h45" fill="none" stroke="#222" stroke-width="5" stroke-opacity=".941"/><path fill="#222" d="M23 77.727h10v10H23z"/><path d="M43 44.628h45" fill [...]
\ No newline at end of file
diff --git a/_/img/octicons-16.svg b/_/img/octicons-16.svg
new file mode 100644
index 0000000000..c2215106f1
--- /dev/null
+++ b/_/img/octicons-16.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><desc>Octicons v11.2.0 by GitHub - https://primer.style/octicons/ - License: MIT</desc><symbol id="icon-clippy" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0  [...]
\ No newline at end of file
diff --git a/_/js/site.js b/_/js/site.js
new file mode 100644
index 0000000000..d35a1fd6eb
--- /dev/null
+++ b/_/js/site.js
@@ -0,0 +1,6 @@
+!function(){"use strict";var c,e,o,t,s,r,l=/^sect(\d)$/,i=document.querySelector(".nav-container"),a=document.querySelector(".nav-toggle");function n(){var e,t,n=window.location.hash;if(n&&(n.indexOf("%")&&(n=decodeURIComponent(n)),!(e=o.querySelector('.nav-link[href="'+n+'"]')))){n=document.getElementById(n.slice(1));if(n)for(var i=n,a=document.querySelector("article.doc");(i=i.parentNode)&&i!==a;){var c=i.id;if((c=c||(c=l.test(i.className))&&(i.firstElementChild||{}).id)&&(e=o.querySel [...]
+!function(){"use strict";var e=document.querySelector("aside.toc.sidebar");if(e){if(document.querySelector("body.-toc"))return e.parentNode.removeChild(e);var t=parseInt(e.dataset.levels||2,10);if(!(t<0)){var o="article.doc",d=document.querySelector(o);if(d){for(var n=[],i=0;i<=t;i++){var r=[o];if(i){for(var c=1;c<=i;c++)r.push((2===c?".sectionbody>":"")+".sect"+c);r.push("h"+(i+1)+"[id]"+(1<i?":not(.discrete)":""))}else r.push("h1[id].sect0");n.push(r.join(">"))}m=n.join(","),f=d.parent [...]
+!function(){"use strict";var n,o,i=document.querySelector("article.doc");function c(e){return e&&(~e.indexOf("%")?decodeURIComponent(e):e).slice(1)}function r(e){if(e){if(e.altKey||e.ctrlKey)return;window.location.hash="#"+this.id,e.preventDefault()}var t=function e(t,n){return i.contains(t)?e(t.offsetParent,t.offsetTop+n):n}(this,0)-n.getBoundingClientRect().bottom;!1===e&&o?window.scrollTo({left:0,top:t,behavior:"instant"}):window.scrollTo(0,t)}i&&(n=document.querySelector(".toolbar"), [...]
+!function(){"use strict";var t,e=document.querySelector(".page-versions .version-menu-toggle");e&&(t=document.querySelector(".page-versions"),e.addEventListener("click",function(e){t.classList.toggle("is-active"),e.stopPropagation()}),document.documentElement.addEventListener("click",function(){t.classList.remove("is-active")}))}();
+!function(){"use strict";var i=document.querySelector(".navbar-burger");i&&i.addEventListener("click",function(t){t.stopPropagation(),document.documentElement.classList.toggle("is-clipped--navbar"),i.setAttribute("aria-expanded",this.classList.toggle("is-active"));t=document.getElementById(this.getAttribute("aria-controls")||this.dataset.target);{var e;t.classList.toggle("is-active")&&(t.style.maxHeight="",e=window.innerHeight-Math.round(t.getBoundingClientRect().top),parseInt(window.get [...]
+!function(){"use strict";var o=/^\$ (\S[^\\\n]*(\\\n(?!\$ )[^\\\n]*)*)(?=\n|$)/gm,s=/( ) *\\\n *|\\\n( ?) */g,l=/ +$/gm,e=(document.getElementById("site-script")||{dataset:{}}).dataset,d=window.navigator.clipboard,r=e.svgAs,p=(null==e.uiRootPath?window:e).uiRootPath||".";[].slice.call(document.querySelectorAll(".doc pre.highlight, .doc .literalblock pre")).forEach(function(e){var t,n,a,c;if(e.classList.contains("highlight"))(i=(t=e.querySelector("code")).dataset.lang)&&"console"!==i&&((a [...]
\ No newline at end of file
diff --git a/_/js/vendor/highlight.js b/_/js/vendor/highlight.js
new file mode 100644
index 0000000000..c617244169
--- /dev/null
+++ b/_/js/vendor/highlight.js
@@ -0,0 +1 @@
+!function(){function e(e){return{aliases:["adoc"],contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"section",relevance:10,variants:[{begin:"^(={1,5}) .+?( \\1)?$"},{begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{className:"meta",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"meta",begin:"^\\[.+?\\]$",relevance:0},{ [...]
\ No newline at end of file
diff --git a/_/js/vendor/tabs.js b/_/js/vendor/tabs.js
new file mode 100644
index 0000000000..f8966c0247
--- /dev/null
+++ b/_/js/vendor/tabs.js
@@ -0,0 +1,127 @@
+;(function () { /*! Asciidoctor Tabs | Copyright (c) 2018-present Dan Allen | MIT License */
+  'use strict'
+
+  var config = (document.currentScript || {}).dataset || {}
+  var forEach = Array.prototype.forEach
+
+  init(document.querySelectorAll('.tabs'))
+
+  function init (tabsBlocks) {
+    if (!tabsBlocks.length) return
+    forEach.call(tabsBlocks, function (tabs) {
+      var syncIds = tabs.classList.contains('is-sync') ? {} : undefined
+      var tablist = tabs.querySelector('.tablist ul')
+      tablist.setAttribute('role', 'tablist')
+      var start
+      forEach.call(tablist.querySelectorAll('li'), function (tab, idx) {
+        tab.tabIndex = -1
+        tab.setAttribute('role', tab.classList.add('tab') || 'tab')
+        var id, anchor, syncId
+        if (!(id = tab.id) && (anchor = tab.querySelector('a[id]'))) {
+          id = tab.id = anchor.parentNode.removeChild(anchor).id
+        }
+        var panel = id && tabs.querySelector('.tabpanel[aria-labelledby~="' + id + '"]')
+        if (!panel) return idx ? undefined : toggleSelected(tab, true) // invalid state
+        syncIds && (((syncId = tab.textContent.trim()) in syncIds) ? (syncId = undefined) : true) &&
+          (syncIds[(tab.dataset.syncId = syncId)] = tab)
+        idx || (syncIds && (start = { tab: tab, panel: panel })) ? toggleHidden(panel, true) : toggleSelected(tab, true)
+        tab.setAttribute('aria-controls', panel.id)
+        panel.setAttribute('role', 'tabpanel')
+        var onClick = syncId === undefined ? activateTab : activateTabSync
+        tab.addEventListener('click', onClick.bind({ tabs: tabs, tab: tab, panel: panel }))
+      })
+      if (!tabs.closest('.tabpanel')) {
+        forEach.call(tabs.querySelectorAll('.tabpanel table.tableblock'), function (table) {
+          var container = Object.assign(document.createElement('div'), { className: 'tablecontainer' })
+          table.parentNode.insertBefore(container, table).appendChild(table)
+        })
+      }
+      if (start) {
+        var syncGroupId
+        for (var i = 0, lst = tabs.classList, len = lst.length, className; i !== len; i++) {
+          if (!(className = lst.item(i)).startsWith('data-sync-group-id=')) continue
+          tabs.dataset.syncGroupId = syncGroupId = lst.remove(className) || className.slice(19).replace(/\u00a0/g, ' ')
+          break
+        }
+        if (syncGroupId === undefined) tabs.dataset.syncGroupId = syncGroupId = Object.keys(syncIds).sort().join('|')
+        var preferredSyncId = 'syncStorageKey' in config &&
+          window[(config.syncStorageScope || 'local') + 'Storage'].getItem(config.syncStorageKey + '-' + syncGroupId)
+        var tab = preferredSyncId && syncIds[preferredSyncId]
+        tab && Object.assign(start, { tab: tab, panel: document.getElementById(tab.getAttribute('aria-controls')) })
+        toggleSelected(start.tab, true) || toggleHidden(start.panel, false)
+      }
+    })
+    onHashChange()
+    toggleClassOnEach(tabsBlocks, 'is-loading', 'remove')
+    window.setTimeout(toggleClassOnEach.bind(null, tabsBlocks, 'is-loaded', 'add'), 0)
+    window.addEventListener('hashchange', onHashChange)
+  }
+
+  function activateTab (e) {
+    var tab = this.tab
+    var tabs = this.tabs || (this.tabs = tab.closest('.tabs'))
+    var panel = this.panel || (this.panel = document.getElementById(tab.getAttribute('aria-controls')))
+    querySelectorWithSiblings(tabs, '.tablist .tab', 'tab').forEach(function (el) {
+      toggleSelected(el, el === tab)
+    })
+    querySelectorWithSiblings(tabs, '.tabpanel', 'tabpanel').forEach(function (el) {
+      toggleHidden(el, el !== panel)
+    })
+    if (!this.isSync && 'syncStorageKey' in config && 'syncGroupId' in tabs.dataset) {
+      var storageKey = config.syncStorageKey + '-' + tabs.dataset.syncGroupId
+      window[(config.syncStorageScope || 'local') + 'Storage'].setItem(storageKey, tab.dataset.syncId)
+    }
+    if (!e) return
+    var loc = window.location
+    var hashIdx = loc.hash ? loc.href.indexOf('#') : -1
+    if (~hashIdx) window.history.replaceState(null, '', loc.href.slice(0, hashIdx))
+    e.preventDefault()
+  }
+
+  function activateTabSync (e) {
+    activateTab.call(this, e)
+    var thisTabs = this.tabs
+    var thisTab = this.tab
+    var initialY = thisTabs.getBoundingClientRect().y
+    forEach.call(document.querySelectorAll('.tabs'), function (tabs) {
+      if (tabs === thisTabs || tabs.dataset.syncGroupId !== thisTabs.dataset.syncGroupId) return
+      querySelectorWithSiblings(tabs, '.tablist .tab', 'tab').forEach(function (tab) {
+        if (tab.dataset.syncId === thisTab.dataset.syncId) activateTab.call({ tabs: tabs, tab: tab, isSync: true })
+      })
+    })
+    var shiftedBy = thisTabs.getBoundingClientRect().y - initialY
+    if (shiftedBy && (shiftedBy = Math.round(shiftedBy))) window.scrollBy({ top: shiftedBy, behavior: 'instant' })
+  }
+
+  function querySelectorWithSiblings (scope, selector, siblingClass) {
+    var el = scope.querySelector(selector)
+    if (!el) return []
+    var result = [el]
+    while ((el = el.nextElementSibling) && el.classList.contains(siblingClass)) result.push(el)
+    return result
+  }
+
+  function toggleClassOnEach (elements, className, method) {
+    forEach.call(elements, function (el) {
+      el.classList[method](className)
+    })
+  }
+
+  function toggleHidden (el, state) {
+    el.classList[(el.hidden = state) ? 'add' : 'remove']('is-hidden')
+  }
+
+  function toggleSelected (el, state) {
+    el.setAttribute('aria-selected', '' + state)
+    el.classList[state ? 'add' : 'remove']('is-selected')
+    el.tabIndex = state ? 0 : -1
+  }
+
+  function onHashChange () {
+    var id = window.location.hash.slice(1)
+    if (!id) return
+    var tab = document.getElementById(~id.indexOf('%') ? decodeURIComponent(id) : id)
+    if (!(tab && tab.classList.contains('tab'))) return
+    'syncId' in tab.dataset ? activateTabSync.call({ tab: tab }) : activateTab.call({ tab: tab })
+  }
+})()
diff --git a/_images/IntelliJ-IDEA-logo.png b/_images/IntelliJ-IDEA-logo.png
new file mode 100644
index 0000000000..319205b3bb
Binary files /dev/null and b/_images/IntelliJ-IDEA-logo.png differ
diff --git a/_images/YourKitLogo.png b/_images/YourKitLogo.png
new file mode 100644
index 0000000000..dccf574320
Binary files /dev/null and b/_images/YourKitLogo.png differ
diff --git a/_images/diag-01168003b98f120d2f0736e5172de8e1218f189e.svg b/_images/diag-01168003b98f120d2f0736e5172de8e1218f189e.svg
new file mode 100644
index 0000000000..ee9dca5100
--- /dev/null
+++ b/_images/diag-01168003b98f120d2f0736e5172de8e1218f189e.svg
@@ -0,0 +1 @@
+<?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="278px" preserveAspectRatio="none" style="width:781px;height:278px;background:#FFFFFF;" version="1.1" viewBox="0 0 781 278" width="781px" zoomAndPan="magnify"><defs/><g><!--cluster LoggerContext--><g id="cluster_LoggerContext"><path d="M8.5,6 L127.5,6 A3.75,3.75 0 0 1 130,8.5 L137,28.2969 L621.5,28.2969 A2.5,2.5 0 0 [...]
\ No newline at end of file
diff --git a/_images/diag-0c23746e246efa4a462049e2adc4b0349185aa77.svg b/_images/diag-0c23746e246efa4a462049e2adc4b0349185aa77.svg
new file mode 100644
index 0000000000..4c2dd6a5f5
--- /dev/null
+++ b/_images/diag-0c23746e246efa4a462049e2adc4b0349185aa77.svg
@@ -0,0 +1 @@
+<?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
new file mode 100644
index 0000000000..ebf1b851eb
--- /dev/null
+++ b/_images/diag-2158b7cc88b372c32a9592f8cdbc1cc926bb8b80.svg
@@ -0,0 +1 @@
+<?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-232cdf1d44336897239fa03f6521cc730f38f32d.svg b/_images/diag-232cdf1d44336897239fa03f6521cc730f38f32d.svg
new file mode 100644
index 0000000000..253990d3c1
--- /dev/null
+++ b/_images/diag-232cdf1d44336897239fa03f6521cc730f38f32d.svg
@@ -0,0 +1 @@
+<?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="218px" preserveAspectRatio="none" style="width:197px;height:218px;background:#FFFFFF;" version="1.1" viewBox="0 0 197 218" width="197px" zoomAndPan="magnify"><defs/><g><!--class Appender--><g id="elem_Appender"><rect codeLine="1" fill="#F1F1F1" height="80.5938" id="Appender" rx="2.5" ry="2.5" style="stroke:#181818; [...]
\ No newline at end of file
diff --git a/_images/diag-35cc4e8101ffe76d0edc44ed334a6273018dc51b.svg b/_images/diag-35cc4e8101ffe76d0edc44ed334a6273018dc51b.svg
new file mode 100644
index 0000000000..881ad85f71
--- /dev/null
+++ b/_images/diag-35cc4e8101ffe76d0edc44ed334a6273018dc51b.svg
@@ -0,0 +1 @@
+<?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-3f8a04c810525cc09a5e7564abf3aa14ed1f7c81.svg b/_images/diag-3f8a04c810525cc09a5e7564abf3aa14ed1f7c81.svg
new file mode 100644
index 0000000000..19bc3dd128
--- /dev/null
+++ b/_images/diag-3f8a04c810525cc09a5e7564abf3aa14ed1f7c81.svg
@@ -0,0 +1 @@
+<?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="1022px" preserveAspectRatio="none" style="width:1327px;height:1022px;background:#FFFFFF;" version="1.1" viewBox="0 0 1327 1022" width="1327px" zoomAndPan="magnify"><defs/><g><!--cluster c--><g id="cluster_c"><path d="M8.5,150.89 L116.5,150.89 A3.75,3.75 0 0 1 119,153.39 L126,173.1869 L806.5,173.1869 A2.5,2.5 0 0 1  [...]
\ No newline at end of file
diff --git a/_images/diag-4d55aeb99a0ae8707b4121b1f76e9544af16b3c4.svg b/_images/diag-4d55aeb99a0ae8707b4121b1f76e9544af16b3c4.svg
new file mode 100644
index 0000000000..230ea88820
--- /dev/null
+++ b/_images/diag-4d55aeb99a0ae8707b4121b1f76e9544af16b3c4.svg
@@ -0,0 +1 @@
+<?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-581e854ee8ecdb00104bac5affda10a653d8f76d.svg b/_images/diag-581e854ee8ecdb00104bac5affda10a653d8f76d.svg
new file mode 100644
index 0000000000..13bad114d3
--- /dev/null
+++ b/_images/diag-581e854ee8ecdb00104bac5affda10a653d8f76d.svg
@@ -0,0 +1 @@
+<?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="614px" preserveAspectRatio="none" style="width:551px;height:614px;background:#FFFFFF;" version="1.1" viewBox="0 0 551 614" width="551px" zoomAndPan="magnify"><defs/><g><!--class Configuration--><g id="elem_Configuration"><rect codeLine="1" fill="#F1F1F1" height="129.4844" id="Configuration" rx="2.5" ry="2.5" style= [...]
\ No newline at end of file
diff --git a/_images/diag-58c484caf8cd616db4f1c7ed31b51c123b5859d4.svg b/_images/diag-58c484caf8cd616db4f1c7ed31b51c123b5859d4.svg
new file mode 100644
index 0000000000..cf669cbdd8
--- /dev/null
+++ b/_images/diag-58c484caf8cd616db4f1c7ed31b51c123b5859d4.svg
@@ -0,0 +1 @@
+<?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="134px" preserveAspectRatio="none" style="width:615px;height:134px;background:#FFFFFF;" version="1.1" viewBox="0 0 615 134" width="615px" zoomAndPan="magnify"><defs/><g><rect fill="#F1F1F1" height="36.2969" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:1.5;" width="48" x="10" y="48.1484"/><text fill="#00000 [...]
\ No newline at end of file
diff --git a/_images/diag-5c97f284d82478c0499cab16fe90893de781b11f.svg b/_images/diag-5c97f284d82478c0499cab16fe90893de781b11f.svg
new file mode 100644
index 0000000000..0460e96382
--- /dev/null
+++ b/_images/diag-5c97f284d82478c0499cab16fe90893de781b11f.svg
@@ -0,0 +1 @@
+<?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-5ffe377615be9b0375b26533bbf7b10507dc946b.svg b/_images/diag-5ffe377615be9b0375b26533bbf7b10507dc946b.svg
new file mode 100644
index 0000000000..ea30fa85b9
--- /dev/null
+++ b/_images/diag-5ffe377615be9b0375b26533bbf7b10507dc946b.svg
@@ -0,0 +1 @@
+<?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="489px" preserveAspectRatio="none" style="width:917px;height:489px;background:#FFFFFF;" version="1.1" viewBox="0 0 917 489" width="917px" zoomAndPan="magnify"><defs/><g><!--class LoggerContext--><g id="elem_LoggerContext"><rect codeLine="1" fill="#F1F1F1" height="96.8906" id="LoggerContext" rx="2.5" ry="2.5" style=" [...]
\ No newline at end of file
diff --git a/_images/diag-63d449f3bcd24cfa522a41f6e2f545416de30322.svg b/_images/diag-63d449f3bcd24cfa522a41f6e2f545416de30322.svg
new file mode 100644
index 0000000000..407cf3e990
--- /dev/null
+++ b/_images/diag-63d449f3bcd24cfa522a41f6e2f545416de30322.svg
@@ -0,0 +1 @@
+<?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="754px" preserveAspectRatio="none" style="width:549px;height:754px;background:#FFFFFF;" version="1.1" viewBox="0 0 549 754" width="549px" zoomAndPan="magnify"><defs/><g><!--class Configuration--><g id="elem_Configuration"><rect codeLine="1" fill="#F1F1F1" height="129.4844" id="Configuration" rx="2.5" ry="2.5" style= [...]
\ No newline at end of file
diff --git a/_images/diag-73365a4d8197b5441a98fd1d661b07760da178be.svg b/_images/diag-73365a4d8197b5441a98fd1d661b07760da178be.svg
new file mode 100644
index 0000000000..c9b6b7b12e
--- /dev/null
+++ b/_images/diag-73365a4d8197b5441a98fd1d661b07760da178be.svg
@@ -0,0 +1 @@
+<?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="507px" preserveAspectRatio="none" style="width:649px;height:507px;background:#FFFFFF;" version="1.1" viewBox="0 0 649 507" width="649px" zoomAndPan="magnify"><defs/><g><!--class Configuration--><g id="elem_Configuration"><rect codeLine="1" fill="#F1F1F1" height="129.4844" id="Configuration" rx="2.5" ry="2.5" style= [...]
\ No newline at end of file
diff --git a/_images/diag-768e5e02508ea736d8901892b519a6d3a7a770ab.svg b/_images/diag-768e5e02508ea736d8901892b519a6d3a7a770ab.svg
new file mode 100644
index 0000000000..1e0909caa2
--- /dev/null
+++ b/_images/diag-768e5e02508ea736d8901892b519a6d3a7a770ab.svg
@@ -0,0 +1 @@
+<?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-77a13b00749af95e3ed0eefd605a73f25d70973c.svg b/_images/diag-77a13b00749af95e3ed0eefd605a73f25d70973c.svg
new file mode 100644
index 0000000000..d9566cac31
--- /dev/null
+++ b/_images/diag-77a13b00749af95e3ed0eefd605a73f25d70973c.svg
@@ -0,0 +1 @@
+<?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="442px" preserveAspectRatio="none" style="width:298px;height:442px;background:#FFFFFF;" version="1.1" viewBox="0 0 298 442" width="298px" zoomAndPan="magnify"><defs/><g><!--class LoggerContext--><g id="elem_LoggerContext"><rect codeLine="1" fill="#F1F1F1" height="96.8906" id="LoggerContext" rx="2.5" ry="2.5" style=" [...]
\ No newline at end of file
diff --git a/_images/diag-7a08e5a79432e9299cc0d9671bd39677be5618e8.svg b/_images/diag-7a08e5a79432e9299cc0d9671bd39677be5618e8.svg
new file mode 100644
index 0000000000..d6568aec0a
--- /dev/null
+++ b/_images/diag-7a08e5a79432e9299cc0d9671bd39677be5618e8.svg
@@ -0,0 +1 @@
+<?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="548px" preserveAspectRatio="none" style="width:330px;height:548px;background:#FFFFFF;" version="1.1" viewBox="0 0 330 548" width="330px" zoomAndPan="magnify"><defs/><g><!--class Configuration--><g id="elem_Configuration"><rect codeLine="1" fill="#F1F1F1" height="129.4844" id="Configuration" rx="2.5" ry="2.5" style= [...]
\ No newline at end of file
diff --git a/_images/diag-892fd9dbd9ea6bece55c1d4078ae1de2edd5c689.svg b/_images/diag-892fd9dbd9ea6bece55c1d4078ae1de2edd5c689.svg
new file mode 100644
index 0000000000..cbe9bce8db
--- /dev/null
+++ b/_images/diag-892fd9dbd9ea6bece55c1d4078ae1de2edd5c689.svg
@@ -0,0 +1 @@
+<?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="134px" preserveAspectRatio="none" style="width:347px;height:134px;background:#FFFFFF;" version="1.1" viewBox="0 0 347 134" width="347px" zoomAndPan="magnify"><defs/><g><rect fill="#F1F1F1" height="36.2969" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:1.5;" width="48" x="10" y="48.1484"/><text fill="#00000 [...]
\ No newline at end of file
diff --git a/_images/diag-a15d9b3aaacbf863f81fe0dcb0ed21346b6c46ed.svg b/_images/diag-a15d9b3aaacbf863f81fe0dcb0ed21346b6c46ed.svg
new file mode 100644
index 0000000000..673dd699c8
--- /dev/null
+++ b/_images/diag-a15d9b3aaacbf863f81fe0dcb0ed21346b6c46ed.svg
@@ -0,0 +1 @@
+<?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-a51b68065f249459078382aa4c61888857f01b2c.svg b/_images/diag-a51b68065f249459078382aa4c61888857f01b2c.svg
new file mode 100644
index 0000000000..c66f60d264
--- /dev/null
+++ b/_images/diag-a51b68065f249459078382aa4c61888857f01b2c.svg
@@ -0,0 +1 @@
+<?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="905px" preserveAspectRatio="none" style="width:1157px;height:905px;background:#FFFFFF;" version="1.1" viewBox="0 0 1157 905" width="1157px" zoomAndPan="magnify"><defs/><g><rect fill="#DDDDDD" height="104.7969" id="_legend" rx="7.5" ry="7.5" style="stroke:#000000;stroke-width:1.0;" width="207" x="924" y="12"/><rect  [...]
\ No newline at end of file
diff --git a/_images/diag-d5122741a680d765fa3170a444015b615a1fdafd.svg b/_images/diag-d5122741a680d765fa3170a444015b615a1fdafd.svg
new file mode 100644
index 0000000000..7d4b4be182
--- /dev/null
+++ b/_images/diag-d5122741a680d765fa3170a444015b615a1fdafd.svg
@@ -0,0 +1 @@
+<?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-fd71b342bbb89cd55a1ddb592976b9ac26b6348e.svg b/_images/diag-fd71b342bbb89cd55a1ddb592976b9ac26b6348e.svg
new file mode 100644
index 0000000000..dcd88d33a2
--- /dev/null
+++ b/_images/diag-fd71b342bbb89cd55a1ddb592976b9ac26b6348e.svg
@@ -0,0 +1 @@
+<?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="300px" preserveAspectRatio="none" style="width:649px;height:300px;background:#FFFFFF;" version="1.1" viewBox="0 0 649 300" width="649px" zoomAndPan="magnify"><defs/><g><!--class LoggerContext--><g id="elem_LoggerContext"><rect codeLine="1" fill="#F1F1F1" height="96.8906" id="LoggerContext" rx="2.5" ry="2.5" style=" [...]
\ No newline at end of file
diff --git a/_images/favicon.ico b/_images/favicon.ico
new file mode 100644
index 0000000000..a9e28f080d
Binary files /dev/null and b/_images/favicon.ico differ
diff --git a/_images/jmx-jconsole-mbeans.png b/_images/jmx-jconsole-mbeans.png
new file mode 100644
index 0000000000..16ae364552
Binary files /dev/null and b/_images/jmx-jconsole-mbeans.png differ
diff --git a/_images/logo-big-black.png b/_images/logo-big-black.png
new file mode 100644
index 0000000000..4cff921fb4
Binary files /dev/null and b/_images/logo-big-black.png differ
diff --git a/_images/logo-small-white.png b/_images/logo-small-white.png
new file mode 100644
index 0000000000..f2a539ea7c
Binary files /dev/null and b/_images/logo-small-white.png differ
diff --git a/components.html b/components.html
new file mode 100644
index 0000000000..b21e1f036e
--- /dev/null
+++ b/components.html
@@ -0,0 +1,2451 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>Components :: Apache Log4j</title>
+    <link rel="canonical" href="https://logging.apache.org/log4j/2.x/components.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">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+  /* Swap colors of `IMPORTANT` and `WARNING` blocks */ 
+  .doc .admonitionblock.important .icon { background-color: #f70; }
+  .doc .admonitionblock.warning .icon { background-color: #e40046; }
+  /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+  .doc h1 { font-size: 1.9rem; }
+  .doc h2 { font-size: 1.7rem; }
+  .doc h3 { font-size: 1.5rem; font-weight: 400; }
+  .doc h4 { font-size: 1.3rem; font-weight: 500; }
+  .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+  .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+  /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+  .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+  .doc pre { font-size: 0.7rem; }
+  .doc .colist { font-size: 0.75rem; }
+  /* Make links more visible: */
+  .doc a { text-decoration: underline; }
+  .doc a code { text-decoration: underline; color: #1565c0; }
+  /* Tab header fonts aren't rendered good, adjusting the font weight: */
+  .tablist > ul li { font-weight: 500; }
+  /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+  .toc .toc-menu li[data-level="4"] a {
+    padding-left: 2.75rem;
+  }
+  /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+  .hljs-string {
+    color: #0f8532;
+  }
+</style>
+  </head>
+  <body class="article">
+<header class="header">
+  <nav class="navbar">
+    <div class="navbar-brand">
+      <div class="navbar-item">
+        <img src="./_/../_images/logo-small-white.png" alt="Apache Log4j"/>
+      </div>
+    </div>
+    <div id="topbar-nav" class="navbar-menu">
+      <div class="navbar-end">
+        <a class="navbar-item" href="https://logging.apache.org">a subproject of&nbsp;<strong>Apache Logging Services</strong></a>
+      </div>
+    </div>
+  </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+  <aside class="nav">
+    <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+  <nav class="nav-menu">
+    <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+    <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="download.html">Download</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="release-notes.html">Release Notes</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/index.html">Manual</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/getting-started.html">Getting started</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/installation.html">Installation</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html">API</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#loggers">Loggers</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/eventlogging.html">Event Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/simple-logger.html">Simple Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/status-logger.html">Status Logger</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/logbuilder.html">Fluent API</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#fish-tagging">Fish tagging</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customloglevels.html">Levels</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/markers.html">Markers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/thread-context.html">Thread Context</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/messages.html">Messages</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/flowtracing.html">Flow Tracing</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/implementation.html">Implementation</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/architecture.html">Architecture</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/config-intro.html">Configuration</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/configuration.html">Configuration file</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/systemproperties.html">Configuration properties</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customconfig.html">Programmatic configuration</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/appenders.html">Appenders</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/file.html">File appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/rolling-file.html">Rolling file appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/database.html">Database appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/network.html">Network Appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/message-queue.html">Message queue appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/delegating.html">Delegating Appenders</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/layouts.html">Layouts</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/json-template-layout.html">JSON Template Layout</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/pattern-layout.html">Pattern Layout</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/lookups.html">Lookups</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/filters.html">Filters</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/scripts.html">Scripts</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/jmx.html">JMX</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/extending.html">Extending</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/plugins.html">Plugins</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/performance.html">Performance</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/async.html">Asynchronous loggers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/garbagefree.html">Garbage-free logging</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">References</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="plugin-reference.html">Plugin reference</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="javadoc.html">Java API reference</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Resources</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="faq.html">F.A.Q.</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="migrate-from-log4j1.html">Migrating from Log4j 1</a>
+  </li>
+  <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" 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="hibernate.html">Integrating with Hibernate</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="jakarta.html">Integrating with Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="soa.html">Integrating with service-oriented architectures</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="development.html">Development</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item is-current-page" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="components.html">Components</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-iostreams.html">Log4j IOStreams</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-boot.html">Log4j Spring Boot Support</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j Spring Cloud Configuration</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-to-jul.html">Log4j-to-JUL bridge</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Related projects</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jakarta/index.html">Log4j Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jmx-gui/index.html">Log4j JMX GUI</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/kotlin/index.html">Log4j Kotlin</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/scala/index.html">Log4j Scala</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/tools/index.html">Log4j Tools</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/transform/index.html">Log4j Transformation Tools</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </nav>
+</div>
+    </div>
+  </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+  <a href="index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+  <ul>
+    <li><a href="index.html">Home</a></li>
+    <li><a href="components.html">Components</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/components.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">Components</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>The Log4j 2 distribution contains the following artifacts:</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-bom"><a class="anchor" href="#log4j-bom"></a><code>log4j-bom</code></h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>A public Bill-of-Materials that manages all the versions of Log4j artifacts.
+You can import the BOM in your build tool of preference:</p>
+</div>
+<div id="_tabs_1" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_1_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_1_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_1_maven--panel" class="tabpanel" aria-labelledby="_tabs_1_maven">
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependencyManagement&gt;
+  &lt;dependencies&gt;
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+      &lt;artifactId&gt;log4j-bom&lt;/artifactId&gt;
+      &lt;version&gt;2.24.1&lt;/version&gt;
+      &lt;scope&gt;import&lt;/scope&gt;
+      &lt;type&gt;pom&lt;/type&gt;
+    &lt;/dependency&gt;
+  &lt;/dependencies&gt;
+&lt;/dependencyManagement&gt;</code></pre>
+</div>
+</div>
+</div>
+<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 {
+  implementation platform('org.apache.logging.log4j:log4j-bom:2.24.1')
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j"><a class="anchor" href="#log4j"></a><code>log4j</code></h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>A private Bill-of-Materials used during the compilation and testing of the project.</p>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-caution" title="Caution"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>Do not use this artifact, since it also manages versions of <strong>third-party</strong> projects.
+Use <a href="#log4j-bom"><code>log4j-bom</code></a> instead.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-12-api"><a class="anchor" href="#log4j-12-api"></a><code>log4j-1.2-api</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.log4j</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-1.2-api</code> artifact contains several tools to help users migrate from Log4j 1 to Log4j 2.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="migrate-from-log4j1.html#option-1-use-the-log4j-1-x-bridge-log4j-1-2-api" class="xref page">Log4j 1 to Log4j 2 Bridge</a> for details.</p>
+</div>
+<div id="_tabs_2" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_2_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_2_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_2_maven--panel" class="tabpanel" aria-labelledby="_tabs_2_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-1.2-api&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_2_gradle--panel" class="tabpanel" aria-labelledby="_tabs_2_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-1.2-api'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-api"><a class="anchor" href="#log4j-api"></a><code>log4j-api</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-api</code> artifact contains the <a href="manual/api.html" class="xref page">Log4j API</a>.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/api.html" class="xref page">Log4j API</a> for more details.</p>
+</div>
+<div id="_tabs_3" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_3_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_3_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_3_maven--panel" class="tabpanel" aria-labelledby="_tabs_3_maven">
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-api&lt;/artifactId&gt;
+  &lt;version&gt;${log4j-api.version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_3_gradle--panel" class="tabpanel" aria-labelledby="_tabs_3_gradle">
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">implementation 'org.apache.logging.log4j:log4j-api:${log4j-api.version}'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-api-test"><a class="anchor" href="#log4j-api-test"></a><code>log4j-api-test</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.test</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-api-test</code> artifact contains test fixtures useful to test Log4j API implementations.</p>
+</div>
+<div id="_tabs_4" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_4_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_4_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_4_maven--panel" class="tabpanel" aria-labelledby="_tabs_4_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-api-test&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_4_gradle--panel" class="tabpanel" aria-labelledby="_tabs_4_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-api-test'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-appserver"><a class="anchor" href="#log4j-appserver"></a><code>log4j-appserver</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.appserver</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-appserver</code> artifact contains:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>A bridge from Tomcat JULI to the Log4j API.
+See <a href="jakarta.html#replace-tomcat" class="xref page">Replacing Tomcat logging system</a> for more information.</p>
+</li>
+<li>
+<p>A bridge from Jetty 9 logging API to the Log4j API.
+See <a href="jakarta.html#replace-jetty" class="xref page">Replacing Jetty logging system</a> for more information</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_5" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_5_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_5_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_5_maven--panel" class="tabpanel" aria-labelledby="_tabs_5_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-appserver&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_5_gradle--panel" class="tabpanel" aria-labelledby="_tabs_5_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-appserver'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-cassandra"><a class="anchor" href="#log4j-cassandra"></a><code>log4j-cassandra</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.cassandra</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-cassandra</code> artifact contains an <a href="manual/appenders.html" class="xref page">appender</a> for the
+<a href="https://cassandra.apache.org/_/index.html">Apache Cassandra</a>
+database.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/appenders/database.html#CassandraAppender" class="xref page">Cassandra Appender</a> for more information.</p>
+</div>
+<div id="_tabs_6" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_6_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_6_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_6_maven--panel" class="tabpanel" aria-labelledby="_tabs_6_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-cassandra&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_6_gradle--panel" class="tabpanel" aria-labelledby="_tabs_6_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-cassandra'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-core"><a class="anchor" href="#log4j-core"></a><code>log4j-core</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.core</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-core</code> artifact contains the reference implementation of the <a href="manual/api.html" class="xref page">Log4j API</a>.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/implementation.html" class="xref page">Reference implementation</a> for more details.</p>
+</div>
+<div id="_tabs_7" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_7_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_7_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_7_maven--panel" class="tabpanel" aria-labelledby="_tabs_7_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-core&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_7_gradle--panel" class="tabpanel" aria-labelledby="_tabs_7_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-core'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-core-test"><a class="anchor" href="#log4j-core-test"></a><code>log4j-core-test</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.core.test</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-core-test</code> artifact contains test fixtures useful to <a href="manual/extending.html" class="xref page">extend the reference implementation</a>.</p>
+</div>
+<div id="_tabs_8" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_8_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_8_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_8_maven--panel" class="tabpanel" aria-labelledby="_tabs_8_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-core-test&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_8_gradle--panel" class="tabpanel" aria-labelledby="_tabs_8_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-core-test'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-couchdb"><a class="anchor" href="#log4j-couchdb"></a><code>log4j-couchdb</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.couchdb</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-couchdb</code> artifact contains a provider to connect the
+<a href="manual/appenders/database.html#NoSqlAppender" class="xref page">NoSQL Appender</a>
+with the
+<a href="https://couchdb.apache.org/">Apache CouchDB</a>
+database.</p>
+</div>
+<div class="paragraph">
+<p>See
+<a href="manual/appenders/database.html#CouchDbProvider" class="xref page">CouchDB provider</a>
+for more information.</p>
+</div>
+<div id="_tabs_9" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_9_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_9_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_9_maven--panel" class="tabpanel" aria-labelledby="_tabs_9_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-couchdb&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_9_gradle--panel" class="tabpanel" aria-labelledby="_tabs_9_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-couchdb'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-docker"><a class="anchor" href="#log4j-docker"></a><code>log4j-docker</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.docker</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-docker</code> artifact contains a <a href="manual/lookups.html" class="xref page">lookup</a> for applications running in a
+<a href="https://www.docker.com/">Docker container</a></p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/lookups.html#DockerLookup" class="xref page">Docker lookup</a> for more information.</p>
+</div>
+<div id="_tabs_10" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_10_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_10_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_10_maven--panel" class="tabpanel" aria-labelledby="_tabs_10_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-docker&lt;/artifactId&gt;
+  &lt;version&gt;2.24.1&lt;/version&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_10_gradle--panel" class="tabpanel" aria-labelledby="_tabs_10_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-docker:2.24.1'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-flume-ng"><a class="anchor" href="#log4j-flume-ng"></a><code>log4j-flume-ng</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.flume</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-flume-ng</code> artifact contains an <a href="manual/appenders.html" class="xref page">appender</a> for the
+<a href="https://flume.apache.org/">Apache Flume</a>
+log data collection service.</p>
+</div>
+<div class="paragraph">
+<p>See
+<a href="manual/appenders/message-queue.html#FlumeAppender" class="xref page">Flume Appender</a>
+for more information.</p>
+</div>
+<div id="_tabs_11" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_11_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_11_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_11_maven--panel" class="tabpanel" aria-labelledby="_tabs_11_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-flume-ng&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_11_gradle--panel" class="tabpanel" aria-labelledby="_tabs_11_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-flume-ng'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-iostreams"><a class="anchor" href="#log4j-iostreams"></a><code>log4j-iostreams</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.iostreams</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-iostreams</code> artifact is an extension of the <a href="manual/api.html" class="xref page">Log4j API</a> to connect with legacy stream-based logging methods.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="log4j-iostreams.html" class="xref page">Log4j IOStreams</a> for more information.</p>
+</div>
+<div id="_tabs_12" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_12_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_12_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_12_maven--panel" class="tabpanel" aria-labelledby="_tabs_12_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-iostreams&lt;/artifactId&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_12_gradle--panel" class="tabpanel" aria-labelledby="_tabs_12_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">implementation 'org.apache.logging.log4j:log4j-iostreams'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-jakarta-smtp"><a class="anchor" href="#log4j-jakarta-smtp"></a><code>log4j-jakarta-smtp</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 100%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.jakarta.smtp</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-jakarta-smtp</code> contains an <a href="manual/appenders.html" class="xref page">appender</a> for the
+<a href="https://jakarta.ee/specifications/mail/2.0/">Jakarta Mail 2.0 API</a>
+and later versions.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/appenders/network.html#SmtpAppender" class="xref page">SMTP Appender</a> for more information.</p>
+</div>
+<div id="_tabs_13" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_13_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_13_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_13_maven--panel" class="tabpanel" aria-labelledby="_tabs_13_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-jakarta-smtp&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_13_gradle--panel" class="tabpanel" aria-labelledby="_tabs_13_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-jakarta-smtp'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-jakarta-web"><a class="anchor" href="#log4j-jakarta-web"></a><code>log4j-jakarta-web</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 100%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.jakarta.web</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-jakarta-web</code> contains multiple utils to run your applications in a
+<a href="https://jakarta.ee/specifications/servlet/5.0/">Jakarta Servlet 5.0</a>
+or later environment:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>It synchronizes the lifecycle of Log4j Core and your application.
+See <a href="jakarta.html#log4j-jakarta-web" class="xref page">Integrating with web applications</a> for more details.</p>
+</li>
+<li>
+<p>It contains a <a href="manual/lookups.html" class="xref page">lookup</a> for the data contained in a Servlet context.
+See <a href="manual/lookups.html#WebLookup" class="xref page">Web Lookup</a> for more details.</p>
+</li>
+<li>
+<p>It contains an <a href="manual/appenders.html" class="xref page">appender</a> to forward log event to a Servlet.
+See <a href="manual/appenders.html#ServletAppender" class="xref page">Servlet Appender</a> for more details.</p>
+</li>
+</ul>
+</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>Don&#8217;t deploy this artifact together with <a href="#log4j-web"><code>log4j-web</code></a>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div id="_tabs_14" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_14_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_14_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_14_maven--panel" class="tabpanel" aria-labelledby="_tabs_14_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-jakarta-web&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_14_gradle--panel" class="tabpanel" aria-labelledby="_tabs_14_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-jakarta-web'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-jcl"><a class="anchor" href="#log4j-jcl"></a><code>log4j-jcl</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 100%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.jcl</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-jcl</code> artifact contains a bridge from
+<a href="https://commons.apache.org/proper/commons-logging/">Apache Commons Logging</a>
+and the
+<a href="manual/api.html" class="xref page">Log4j API</a>.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/installation.html#impl-core-bridge-jcl" class="xref page">Installing JCL-to-Log4j API bridge</a> for more details.</p>
+</div>
+<div id="_tabs_15" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_15_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_15_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_15_maven--panel" class="tabpanel" aria-labelledby="_tabs_15_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-jcl&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_15_gradle--panel" class="tabpanel" aria-labelledby="_tabs_15_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-jcl'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-jdbc-dbcp2"><a class="anchor" href="#log4j-jdbc-dbcp2"></a><code>log4j-jdbc-dbcp2</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 100%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.jdbc.dbcp2</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-jdbc-dbcp2</code> artifact contains a data source for the
+<a href="manual/appenders/database.html#JdbcAppender" class="xref page">JDBC Appender</a>
+that uses
+<a href="https://commons.apache.org/proper/commons-dbcp/">Apache Commons DBCP</a>.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/appenders/database.html#PoolingDriverConnectionSource" class="xref page"><code>PoolingDriver</code> connection source</a> for more details.</p>
+</div>
+<div id="_tabs_16" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_16_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_16_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_16_maven--panel" class="tabpanel" aria-labelledby="_tabs_16_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-jdbc-dbcp2&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_16_gradle--panel" class="tabpanel" aria-labelledby="_tabs_16_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-jdbc-dbcp2'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-jpa"><a class="anchor" href="#log4j-jpa"></a><code>log4j-jpa</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 100%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.jpa</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-jpa</code> artifact contains an <a href="manual/appenders.html" class="xref page">appender</a> for the
+<a href="https://jakarta.ee/specifications/persistence/2.2/">Jakarta Persistence 2.2 API</a>
+or Java Persistence API.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/appenders/database.html#JpaAppender" class="xref page">JPA Appender</a> for more details.</p>
+</div>
+<div id="_tabs_17" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_17_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_17_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_17_maven--panel" class="tabpanel" aria-labelledby="_tabs_17_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-jpa&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_17_gradle--panel" class="tabpanel" aria-labelledby="_tabs_17_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-jpa'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-jpl"><a class="anchor" href="#log4j-jpl"></a><code>log4j-jpl</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 100%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.jpl</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-jpl</code> artifact contains a bridge from
+<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/System.Logger.html"><code>System.Logger</code></a>
+to the <a href="manual/api.html" class="xref page">Log4j API</a>.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/installation.html#impl-core-bridge-jpl" class="xref page">Installing the JPL-to-Log4j API bridge</a> for more details.</p>
+</div>
+<div id="_tabs_18" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_18_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_18_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_18_maven--panel" class="tabpanel" aria-labelledby="_tabs_18_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-jpl&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_18_gradle--panel" class="tabpanel" aria-labelledby="_tabs_18_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-jpl'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-jul"><a class="anchor" href="#log4j-jul"></a><code>log4j-jul</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 100%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.jul</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-jul</code> artifact contains a bridge from
+<a href="https://docs.oracle.com/javase/8/docs/api/java/util/logging/package-summary.html"><code>java.util.logging</code></a>
+to the <a href="manual/api.html" class="xref page">Log4j API</a>.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/installation.html#impl-core-bridge-jul" class="xref page">Installing the JUL-to-Log4j API bridge</a> for more details.</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>Don&#8217;t deploy this artifact together with <a href="#log4j-to-jul"><code>log4j-to-jul</code></a>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div id="_tabs_19" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_19_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_19_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_19_maven--panel" class="tabpanel" aria-labelledby="_tabs_19_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-jul&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_19_gradle--panel" class="tabpanel" aria-labelledby="_tabs_19_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-jul'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-json-template-layout"><a class="anchor" href="#log4j-json-template-layout"></a><code>log4j-json-template-layout</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 100%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.json.template.layout</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-json-template-layout</code> contains a highly extensible and configurable
+<a href="manual/layouts.html" class="xref page">layout</a>
+to format log events as JSON.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/json-template-layout.html" class="xref page">JSON Template Layout</a> for details.</p>
+</div>
+<div id="_tabs_20" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_20_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_20_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_20_maven--panel" class="tabpanel" aria-labelledby="_tabs_20_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-json-template-layout&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_20_gradle--panel" class="tabpanel" aria-labelledby="_tabs_20_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-json-template-layout'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-mongodb"><a class="anchor" href="#log4j-mongodb"></a><code>log4j-mongodb</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.mongodb</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-mongodb</code> artifact contains a provider to connect the
+<a href="manual/appenders/database.html#NoSqlAppender" class="xref page">NoSQL Appender</a>
+with the
+<a href="https://www.mongodb.com/">MongoDB</a>
+database.
+It is based on the latest version of the Java driver.</p>
+</div>
+<div class="paragraph">
+<p>See
+<a href="manual/appenders/database.html#MongoDbProvider" class="xref page">MongoDb provider</a>
+for more information.</p>
+</div>
+<div id="_tabs_21" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_21_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_21_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_21_maven--panel" class="tabpanel" aria-labelledby="_tabs_21_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-mongodb&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_21_gradle--panel" class="tabpanel" aria-labelledby="_tabs_21_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-mongodb4'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-mongodb4"><a class="anchor" href="#log4j-mongodb4"></a><code>log4j-mongodb4</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.mongodb4</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-mongodb</code> artifact contains a provider to connect the
+<a href="manual/appenders/database.html#NoSqlAppender" class="xref page">NoSQL Appender</a>
+with the
+<a href="https://www.mongodb.com/">MongoDB</a>
+database.
+It is based on version 4.x of the Java driver.</p>
+</div>
+<div class="paragraph">
+<p>See
+<a href="manual/appenders/database.html#MongoDb4Provider" class="xref page">MongoDb4 provider</a>
+for more information.</p>
+</div>
+<div id="_tabs_22" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_22_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_22_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_22_maven--panel" class="tabpanel" aria-labelledby="_tabs_22_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-mongodb4&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_22_gradle--panel" class="tabpanel" aria-labelledby="_tabs_22_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-mongodb4'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-slf4j2-impl"><a class="anchor" href="#log4j-slf4j2-impl"></a><code>log4j-slf4j2-impl</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.slf4j2.impl</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-slf4j2-impl</code> artifact contains a bridge from
+<a href="https://www.slf4j.org/">SLF4J 2 API</a>
+to the <a href="manual/api.html" class="xref page">Log4j API</a>.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/installation.html#impl-core-bridge-slf4j" class="xref page">Installing the SLF4J-to-Log4j API bridge</a> for more details.</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>Don&#8217;t deploy this artifact together with either <a href="#log4j-slf4j-impl"><code>log4j-slf4j-impl</code></a> or <a href="#log4j-to-slf4j"><code>log4j-to-slf4j</code></a>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div id="_tabs_23" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_23_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_23_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_23_maven--panel" class="tabpanel" aria-labelledby="_tabs_23_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-slf4j2-impl&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_23_gradle--panel" class="tabpanel" aria-labelledby="_tabs_23_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-slf4j2-impl'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-slf4j-impl"><a class="anchor" href="#log4j-slf4j-impl"></a><code>log4j-slf4j-impl</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.slf4j.impl</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-slf4j-impl</code> artifact contains a bridge from
+<a href="https://www.slf4j.org/">SLF4J 1 API</a>
+to the <a href="manual/api.html" class="xref page">Log4j API</a>.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/installation.html#impl-core-bridge-slf4j" class="xref page">Installing the SLF4J-to-Log4j API bridge</a> for more details.</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>Don&#8217;t deploy this artifact together with either <a href="#log4j-slf4j2-impl"><code>log4j-slf4j2-impl</code></a> or <a href="#log4j-to-slf4j"><code>log4j-to-slf4j</code></a>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div id="_tabs_24" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_24_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_24_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_24_maven--panel" class="tabpanel" aria-labelledby="_tabs_24_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-slf4j-impl&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_24_gradle--panel" class="tabpanel" aria-labelledby="_tabs_24_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-slf4j-impl'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-spring-boot"><a class="anchor" href="#log4j-spring-boot"></a><code>log4j-spring-boot</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.spring.boot</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-spring-boot</code> artifact contains multiple utils to integrate with
+<a href="https://spring.io/projects/spring-framework">Spring Framework 5.x</a>
+or earlier versions and
+<a href="https://spring.io/projects/spring-boot">Spring Boot 2.x</a>
+or earlier versions.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>It provides a <a href="manual/systemproperties.html#property-sources" class="xref page">property source</a>.
+See <a href="manual/systemproperties.html#SpringPropertySource" class="xref page">Spring Property source</a> for more details.</p>
+</li>
+<li>
+<p>It provides a <a href="manual/lookups.html" class="xref page">lookup</a>.
+See <a href="manual/lookups.html#SpringBootLookup" class="xref page">Spring lookup</a> for more details.</p>
+</li>
+<li>
+<p>It provides an <a href="manual/configuration.html#arbiters" class="xref page">arbiter</a>.
+See <a href="log4j-spring-boot.html" class="xref page">Spring arbiter</a> for more details.</p>
+</li>
+<li>
+<p>It provides an alternative
+<a href="https://docs.spring.io/spring-boot/api/java/org/springframework/boot/logging/LoggingSystem.html"><code>LoggingSystem</code></a>
+implementation.
+See <a href="log4j-spring-boot.html" class="xref page">Log4j Spring Boot Support</a> for more details.</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_25" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_25_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_25_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_25_maven--panel" class="tabpanel" aria-labelledby="_tabs_25_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-spring-boot&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_25_gradle--panel" class="tabpanel" aria-labelledby="_tabs_25_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-spring-boot'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-spring-cloud-config-client"><a class="anchor" href="#log4j-spring-cloud-config-client"></a><code>log4j-spring-cloud-config-client</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.spring.cloud.config.client</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-spring-cloud-config-client</code> provides utils to integrate with
+<a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config 3.x</a>
+or earlier versions.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="log4j-spring-cloud-config-client.html" class="xref page">Log4j Spring Cloud Configuration</a> for more details.</p>
+</div>
+<div id="_tabs_26" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_26_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_26_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_26_maven--panel" class="tabpanel" aria-labelledby="_tabs_26_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-spring-cloud-config-client&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_26_gradle--panel" class="tabpanel" aria-labelledby="_tabs_26_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-spring-cloud-config-client'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-taglib"><a class="anchor" href="#log4j-taglib"></a><code>log4j-taglib</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.taglib</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-taglib</code> provides a
+<a href="https://jakarta.ee/specifications/pages/2.3/">Jakarta Servlet Pages 2.3</a>
+or earlier library that logs to the <a href="manual/api.html" class="xref page">Log4j API</a>.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="jakarta.html#log4j-taglib" class="xref page">Log4j Taglib</a> for more details.</p>
+</div>
+<div id="_tabs_27" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_27_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_27_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_27_maven--panel" class="tabpanel" aria-labelledby="_tabs_27_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-taglib&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_27_gradle--panel" class="tabpanel" aria-labelledby="_tabs_27_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-taglib'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-to-jul"><a class="anchor" href="#log4j-to-jul"></a><code>log4j-to-jul</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 100%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.to.jul</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-jul</code> artifact contains an implementation of the
+<a href="manual/api.html" class="xref page">Log4j API</a>
+that logs to
+<a href="https://docs.oracle.com/javase/8/docs/api/java/util/logging/package-summary.html"><code>java.util.logging</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/installation.html#impl-jul" class="xref page">Installing JUL</a> for more details.</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>Don&#8217;t deploy this artifact together with <a href="#log4j-jul"><code>log4j-jul</code></a>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div id="_tabs_28" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_28_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_28_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_28_maven--panel" class="tabpanel" aria-labelledby="_tabs_28_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-to-jul&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_28_gradle--panel" class="tabpanel" aria-labelledby="_tabs_28_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-to-jul'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-to-slf4j"><a class="anchor" href="#log4j-to-slf4j"></a><code>log4j-to-slf4j</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 100%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.to.slf4j</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-jul</code> artifact contains an implementation of the
+<a href="manual/api.html" class="xref page">Log4j API</a>
+that logs to
+<a href="https://www.slf4j.org/">SLF4J API</a>.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/installation.html#impl-logback" class="xref page">Installing Logback</a> for more details.</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>Don&#8217;t deploy this artifact together with either <a href="#log4j-slf4j-impl"><code>log4j-slf4j-impl</code></a> or <a href="#log4j-slf4j2-impl"><code>log4j-slf4j2-impl</code></a>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div id="_tabs_29" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_29_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_29_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_29_maven--panel" class="tabpanel" aria-labelledby="_tabs_29_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-to-slf4j&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_29_gradle--panel" class="tabpanel" aria-labelledby="_tabs_29_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-to-slf4j'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-web"><a class="anchor" href="#log4j-web"></a><code>log4j-web</code></h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 100%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPMS module</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.web</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The <code>log4j-jakarta-web</code> contains multiple utils to run your applications in a
+<a href="https://jakarta.ee/specifications/servlet/5.0/">Jakarta Servlet 4.0</a>
+or Java EE Servlet environment:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>It synchronizes the lifecycle of Log4j Core and your application.
+See <a href="jakarta.html#log4j-jakarta-web" class="xref page">Integrating with web applications</a> for more details.</p>
+</li>
+<li>
+<p>It contains a lookup for the data contained in a Servlet context.
+See <a href="manual/lookups.html#WebLookup" class="xref page">Web Lookup</a> for more details.</p>
+</li>
+<li>
+<p>It contains an <a href="manual/appenders.html" class="xref page">appender</a> to forward log event to a Servlet.
+See <a href="manual/appenders.html#ServletAppender" class="xref page">Servlet Appender</a> for more details.</p>
+</li>
+</ul>
+</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>Don&#8217;t deploy this artifact together with <a href="#log4j-jakarta-web"><code>log4j-jakarta-web</code></a>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div id="_tabs_30" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_30_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_30_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_30_maven--panel" class="tabpanel" aria-labelledby="_tabs_30_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-web&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_30_gradle--panel" class="tabpanel" aria-labelledby="_tabs_30_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-web'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</article>
+  </div>
+</main>
+</div>
+<footer class="footer">
+  <p>
+    Copyright © 1999-2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+    Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+    Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+  </p>
+  <p>
+    Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+    Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+    Other names may be trademarks of their respective owners.
+  </p>
+</footer>
+<!-- Matomo -->
+<script>
+  var _paq = window._paq = window._paq || [];
+  _paq.push(["disableCookies"]);
+  _paq.push(['trackPageView']);
+  _paq.push(['enableLinkTracking']);
+  (function() {
+    var u="https://analytics.apache.org/";
+    _paq.push(['setTrackerUrl', u+'matomo.php']);
+    _paq.push(['setSiteId', '42']);
+    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+  })();
+</script>
+<noscript><p><img src="https://analytics.apache.org/matomo.php?idsite=42&amp;rec=1" style="border:0;" alt="" /></p></noscript>
+<!-- End Matomo Code -->
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+  </body>
+</html>
diff --git a/development.html b/development.html
new file mode 100644
index 0000000000..19e7c309f7
--- /dev/null
+++ b/development.html
@@ -0,0 +1,576 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>Development :: Apache Log4j</title>
+    <link rel="canonical" href="https://logging.apache.org/log4j/2.x/development.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">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+  /* Swap colors of `IMPORTANT` and `WARNING` blocks */ 
+  .doc .admonitionblock.important .icon { background-color: #f70; }
+  .doc .admonitionblock.warning .icon { background-color: #e40046; }
+  /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+  .doc h1 { font-size: 1.9rem; }
+  .doc h2 { font-size: 1.7rem; }
+  .doc h3 { font-size: 1.5rem; font-weight: 400; }
+  .doc h4 { font-size: 1.3rem; font-weight: 500; }
+  .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+  .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+  /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+  .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+  .doc pre { font-size: 0.7rem; }
+  .doc .colist { font-size: 0.75rem; }
+  /* Make links more visible: */
+  .doc a { text-decoration: underline; }
+  .doc a code { text-decoration: underline; color: #1565c0; }
+  /* Tab header fonts aren't rendered good, adjusting the font weight: */
+  .tablist > ul li { font-weight: 500; }
+  /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+  .toc .toc-menu li[data-level="4"] a {
+    padding-left: 2.75rem;
+  }
+  /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+  .hljs-string {
+    color: #0f8532;
+  }
+</style>
+  </head>
+  <body class="article">
+<header class="header">
+  <nav class="navbar">
+    <div class="navbar-brand">
+      <div class="navbar-item">
+        <img src="./_/../_images/logo-small-white.png" alt="Apache Log4j"/>
+      </div>
+    </div>
+    <div id="topbar-nav" class="navbar-menu">
+      <div class="navbar-end">
+        <a class="navbar-item" href="https://logging.apache.org">a subproject of&nbsp;<strong>Apache Logging Services</strong></a>
+      </div>
+    </div>
+  </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+  <aside class="nav">
+    <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+  <nav class="nav-menu">
+    <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+    <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="download.html">Download</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="release-notes.html">Release Notes</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/index.html">Manual</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/getting-started.html">Getting started</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/installation.html">Installation</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html">API</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#loggers">Loggers</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/eventlogging.html">Event Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/simple-logger.html">Simple Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/status-logger.html">Status Logger</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/logbuilder.html">Fluent API</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#fish-tagging">Fish tagging</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customloglevels.html">Levels</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/markers.html">Markers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/thread-context.html">Thread Context</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/messages.html">Messages</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/flowtracing.html">Flow Tracing</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/implementation.html">Implementation</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/architecture.html">Architecture</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/config-intro.html">Configuration</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/configuration.html">Configuration file</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/systemproperties.html">Configuration properties</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customconfig.html">Programmatic configuration</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/appenders.html">Appenders</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/file.html">File appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/rolling-file.html">Rolling file appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/database.html">Database appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/network.html">Network Appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/message-queue.html">Message queue appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/delegating.html">Delegating Appenders</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/layouts.html">Layouts</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/json-template-layout.html">JSON Template Layout</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/pattern-layout.html">Pattern Layout</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/lookups.html">Lookups</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/filters.html">Filters</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/scripts.html">Scripts</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/jmx.html">JMX</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/extending.html">Extending</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/plugins.html">Plugins</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/performance.html">Performance</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/async.html">Asynchronous loggers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/garbagefree.html">Garbage-free logging</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">References</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="plugin-reference.html">Plugin reference</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="javadoc.html">Java API reference</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Resources</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="faq.html">F.A.Q.</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="migrate-from-log4j1.html">Migrating from Log4j 1</a>
+  </li>
+  <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" 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="hibernate.html">Integrating with Hibernate</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="jakarta.html">Integrating with Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="soa.html">Integrating with service-oriented architectures</a>
+  </li>
+  <li class="nav-item is-current-page" data-depth="1">
+    <a class="nav-link" href="development.html">Development</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="components.html">Components</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-iostreams.html">Log4j IOStreams</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-boot.html">Log4j Spring Boot Support</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j Spring Cloud Configuration</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-to-jul.html">Log4j-to-JUL bridge</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Related projects</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jakarta/index.html">Log4j Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jmx-gui/index.html">Log4j JMX GUI</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/kotlin/index.html">Log4j Kotlin</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/scala/index.html">Log4j Scala</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/tools/index.html">Log4j Tools</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/transform/index.html">Log4j Transformation Tools</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </nav>
+</div>
+    </div>
+  </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+  <a href="index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+  <ul>
+    <li><a href="index.html">Home</a></li>
+    <li>Resources</li>
+    <li><a href="development.html">Development</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/development.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">Development</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>This page shares information related to the development of Log4j.
+Content is aimed for users who want to contribute source code patches and maintainers.</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>Do you need help for setting up or configuring Log4j?
+Please refer to <a href="https://logging.apache.org/support.html">the Support page</a> instead.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="github"><a class="anchor" href="#github"></a>GitHub setup</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Log4j uses GitHub extensively:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Source code repository</dt>
+<dd>
+<p><a href="https://github.com/apache/logging-log4j2/tree/2.x" class="bare">https://github.com/apache/logging-log4j2/tree/2.x</a></p>
+</dd>
+<dt class="hdlist1">Issue tracker</dt>
+<dd>
+<p><a href="https://github.com/apache/logging-log4j2/issues" class="bare">https://github.com/apache/logging-log4j2/issues</a></p>
+</dd>
+<dt class="hdlist1">Discussions</dt>
+<dd>
+<p><a href="https://github.com/apache/logging-log4j2/discussions" class="bare">https://github.com/apache/logging-log4j2/discussions</a></p>
+<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>Maintainer discussions mostly take place in mailing lists.
+Please refer to <a href="https://logging.apache.org/support.html">the Support page</a> for the complete list of communication channels.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="branching"><a class="anchor" href="#branching"></a>Branching scheme</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The following branching scheme is followed:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>2.x</code></dt>
+<dd>
+<p>The most recent Log4j 2 code</p>
+</dd>
+<dt class="hdlist1"><code>main</code></dt>
+<dd>
+<p>The most recent Log4j 3 code</p>
+</dd>
+<dt class="hdlist1"><code>&lt;sourceBranch&gt;-site-&lt;environment&gt;</code></dt>
+<dt class="hdlist1"><code>&lt;sourceBranch&gt;-site-&lt;environment&gt;-out</code></dt>
+<dd>
+<p>Branches used to serve the staging and production websites.
+<code>out</code>-suffixed ones are automatically populated by CI, you are not supposed to touch them.
+See <a href="https://logging.apache.org/logging-parent/usage.html#website">the Logging Parent website</a> for details.</p>
+</dd>
+<dt class="hdlist1"><code>release/&lt;version&gt;</code></dt>
+<dd>
+<p>Branch triggering the CI logic to start <a href="https://logging.apache.org/logging-parent/release-instructions-project.html">the release process</a></p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="building"><a class="anchor" href="#building"></a>How can I build Log4j from sources?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>See <a href="https://github.com/apache/logging-log4j2/tree/2.x/BUILDING.adoc">the build instructions</a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="contributor"><a class="anchor" href="#contributor"></a>I am <strong>not</strong> a committer. How shall I submit a patch?</h2>
+<div class="sectionbody">
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Is this a <em>trivial fix</em> such as code or documentation typo?
+Simply submit a pull request.
+Changelog entry is not needed and make sure <code>./mvnw verify site</code> succeeds.</p>
+</li>
+<li>
+<p>Is this a <em>non-trivial fix</em> or a <em>new feature</em>?
+Pitch it in a <a href="https://logging.apache.org/support.html#discussions-maintainer">maintainer discussion channel</a> and ask for assistance.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="committer"><a class="anchor" href="#committer"></a>I am a committer. How shall I push my changes?</h2>
+<div class="sectionbody">
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Is it something trivial?
+Go ahead and push it.</p>
+</li>
+<li>
+<p>Otherwise, submit a pull request.
+Make sure a changelog entry is attached and <code>./mvnw verify site</code> succeeds.</p>
+<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>You are strongly advised to spar with another maintainer first (see <a href="https://logging.apache.org/support.html#discussions-maintainer">maintainer discussion channels</a>) before starting to code.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</li>
+</ol>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="release-project"><a class="anchor" href="#release-project"></a>I am a PMC member. How do I make a new release?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>All Maven-based Logging Services projects are parented by
+<a href="https://logging.apache.org/logging-parent/index.html">Logging Parent</a>,
+which streamlines several project-wide processes, including making a new release.
+See <a href="https://logging.apache.org/logging-parent/release-instructions-project.html">its release instructions for projects</a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="release-xml-schema"><a class="anchor" href="#release-xml-schema"></a>I am a PMC member. How do I publish a new XML schema?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>All Maven-based Logging Services projects are parented by
+<a href="https://logging.apache.org/logging-parent/index.html">Logging Parent</a>,
+which streamlines several project-wide processes, including publishing XML schemas.
+See <a href="https://logging.apache.org/logging-parent/release-instructions-xml-schema.html">its release instructions for XML schemas</a>.</p>
+</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><strong>Projects and XML schemas have different lifecycles!</strong>
+A new release of a project does not necessarily mean a new release of its XML schemas.
+XML schemas might have been untouched, or they might contain minor changes while the project itself contains breaking changes, etc.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</article>
+  </div>
+</main>
+</div>
+<footer class="footer">
+  <p>
+    Copyright © 1999-2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+    Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+    Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+  </p>
+  <p>
+    Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+    Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+    Other names may be trademarks of their respective owners.
+  </p>
+</footer>
+<!-- Matomo -->
+<script>
+  var _paq = window._paq = window._paq || [];
+  _paq.push(["disableCookies"]);
+  _paq.push(['trackPageView']);
+  _paq.push(['enableLinkTracking']);
+  (function() {
+    var u="https://analytics.apache.org/";
+    _paq.push(['setTrackerUrl', u+'matomo.php']);
+    _paq.push(['setSiteId', '42']);
+    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+  })();
+</script>
+<noscript><p><img src="https://analytics.apache.org/matomo.php?idsite=42&amp;rec=1" style="border:0;" alt="" /></p></noscript>
+<!-- End Matomo Code -->
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+  </body>
+</html>
diff --git a/download.html b/download.html
new file mode 100644
index 0000000000..4de3f32041
--- /dev/null
+++ b/download.html
@@ -0,0 +1,581 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>Download :: Apache Log4j</title>
+    <link rel="canonical" href="https://logging.apache.org/log4j/2.x/download.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">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+  /* Swap colors of `IMPORTANT` and `WARNING` blocks */ 
+  .doc .admonitionblock.important .icon { background-color: #f70; }
+  .doc .admonitionblock.warning .icon { background-color: #e40046; }
+  /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+  .doc h1 { font-size: 1.9rem; }
+  .doc h2 { font-size: 1.7rem; }
+  .doc h3 { font-size: 1.5rem; font-weight: 400; }
+  .doc h4 { font-size: 1.3rem; font-weight: 500; }
+  .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+  .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+  /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+  .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+  .doc pre { font-size: 0.7rem; }
+  .doc .colist { font-size: 0.75rem; }
+  /* Make links more visible: */
+  .doc a { text-decoration: underline; }
+  .doc a code { text-decoration: underline; color: #1565c0; }
+  /* Tab header fonts aren't rendered good, adjusting the font weight: */
+  .tablist > ul li { font-weight: 500; }
+  /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+  .toc .toc-menu li[data-level="4"] a {
+    padding-left: 2.75rem;
+  }
+  /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+  .hljs-string {
+    color: #0f8532;
+  }
+</style>
+  </head>
+  <body class="article">
+<header class="header">
+  <nav class="navbar">
+    <div class="navbar-brand">
+      <div class="navbar-item">
+        <img src="./_/../_images/logo-small-white.png" alt="Apache Log4j"/>
+      </div>
+    </div>
+    <div id="topbar-nav" class="navbar-menu">
+      <div class="navbar-end">
+        <a class="navbar-item" href="https://logging.apache.org">a subproject of&nbsp;<strong>Apache Logging Services</strong></a>
+      </div>
+    </div>
+  </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+  <aside class="nav">
+    <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+  <nav class="nav-menu">
+    <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+    <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+  <li class="nav-item is-current-page" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="download.html">Download</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="release-notes.html">Release Notes</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/index.html">Manual</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/getting-started.html">Getting started</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/installation.html">Installation</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html">API</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#loggers">Loggers</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/eventlogging.html">Event Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/simple-logger.html">Simple Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/status-logger.html">Status Logger</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/logbuilder.html">Fluent API</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#fish-tagging">Fish tagging</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customloglevels.html">Levels</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/markers.html">Markers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/thread-context.html">Thread Context</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/messages.html">Messages</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/flowtracing.html">Flow Tracing</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/implementation.html">Implementation</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/architecture.html">Architecture</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/config-intro.html">Configuration</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/configuration.html">Configuration file</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/systemproperties.html">Configuration properties</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customconfig.html">Programmatic configuration</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/appenders.html">Appenders</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/file.html">File appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/rolling-file.html">Rolling file appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/database.html">Database appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/network.html">Network Appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/message-queue.html">Message queue appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/delegating.html">Delegating Appenders</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/layouts.html">Layouts</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/json-template-layout.html">JSON Template Layout</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/pattern-layout.html">Pattern Layout</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/lookups.html">Lookups</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/filters.html">Filters</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/scripts.html">Scripts</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/jmx.html">JMX</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/extending.html">Extending</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/plugins.html">Plugins</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/performance.html">Performance</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/async.html">Asynchronous loggers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/garbagefree.html">Garbage-free logging</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">References</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="plugin-reference.html">Plugin reference</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="javadoc.html">Java API reference</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Resources</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="faq.html">F.A.Q.</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="migrate-from-log4j1.html">Migrating from Log4j 1</a>
+  </li>
+  <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" 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="hibernate.html">Integrating with Hibernate</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="jakarta.html">Integrating with Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="soa.html">Integrating with service-oriented architectures</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="development.html">Development</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="components.html">Components</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-iostreams.html">Log4j IOStreams</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-boot.html">Log4j Spring Boot Support</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j Spring Cloud Configuration</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-to-jul.html">Log4j-to-JUL bridge</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Related projects</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jakarta/index.html">Log4j Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jmx-gui/index.html">Log4j JMX GUI</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/kotlin/index.html">Log4j Kotlin</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/scala/index.html">Log4j Scala</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/tools/index.html">Log4j Tools</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/transform/index.html">Log4j Transformation Tools</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </nav>
+</div>
+    </div>
+  </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+  <a href="index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+  <ul>
+    <li><a href="index.html">Home</a></li>
+    <li><a href="download.html">Download</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/download.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">Download</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Apache Log4j is distributed under the
+<a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
+You can find the download links of the official <a href="#source-distribution">source</a> and <a href="#binary-distribution">binary distributions</a> below.</p>
+</div>
+<div class="paragraph">
+<p>See also the <a href="https://logging.apache.org/download.html">Logging Services download page</a> for instruction on how to validate the downloaded files.</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="ulist">
+<ul>
+<li>
+<p>Are you looking for <strong>the Log4j installation instructions</strong>?
+Proceed to <a href="manual/installation.html" class="xref page">Installation</a>.</p>
+</li>
+<li>
+<p>Are you looking for the list of changes associated with a particular release?
+Proceed to <a href="release-notes.html" class="xref page">Release Notes</a>.</p>
+</li>
+</ul>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="source-distribution"><a class="anchor" href="#source-distribution"></a>Source distribution</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You can download the source code of the latest Apache Log4j release using the links below:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 1. Source distribution files</caption>
+<colgroup>
+<col style="width: 28.5714%;">
+<col style="width: 71.4286%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Source distribution archive</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://downloads.apache.org/logging/log4j/2.24.1/apache-log4j-2.24.1-src.zip">apache-log4j-2.24.1-src.zip</a></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Checksum</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://downloads.apache.org/logging/log4j/2.24.1/apache-log4j-2.24.1-src.zip.sha512">apache-log4j-2.24.1-src.zip.sha512</a></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Signature</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://downloads.apache.org/logging/log4j/2.24.1/apache-log4j-2.24.1-src.zip.asc">apache-log4j-2.24.1-src.zip.asc</a></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">PGP keys</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://downloads.apache.org/logging/KEYS">KEYS</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="binary-distribution"><a class="anchor" href="#binary-distribution"></a>Binary distribution</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>A set of binaries of Apache Log4j is available through two main distribution channels:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">ASF Nexus Repository</dt>
+<dd>
+<div class="paragraph">
+<p>All the binary artifacts are available on the Apache Software Foundation
+<a href="https://repository.apache.org/content/repositories/releases/"><code>repository.apache.org</code> Nexus repository</a>.
+Its content is mirrored to the
+<a href="https://repo.maven.apache.org/maven2/">Maven Central repository</a>.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="components.html" class="xref page">Components</a> for more information on the GAV coordinates of the artifacts.</p>
+</div>
+</dd>
+<dt class="hdlist1">Binary distribution archive</dt>
+<dd>
+<div class="paragraph">
+<p>All the artifacts in the ASF Nexus repository are also available in a single ZIP archive:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 2. Binary distribution files</caption>
+<colgroup>
+<col style="width: 28.5714%;">
+<col style="width: 71.4286%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Source distribution archive</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://downloads.apache.org/logging/log4j/2.24.1/apache-log4j-2.24.1-bin.zip">apache-log4j-2.24.1-bin.zip</a></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Checksum</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://downloads.apache.org/logging/log4j/2.24.1/apache-log4j-2.24.1-bin.zip.sha512">apache-log4j-2.24.1-src.bin.sha512</a></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Signature</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://downloads.apache.org/logging/log4j/2.24.1/apache-log4j-2.24.1-bin.zip.asc">apache-log4j-2.24.1-src.bin.asc</a></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">PGP keys</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://downloads.apache.org/logging/KEYS">KEYS</a></p></td>
+</tr>
+</tbody>
+</table>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>The authenticity of the Apache Log4j binary release is independently verified by the
+<a href="https://github.com/jvm-repo-rebuild/reproducible-central">Reproducible Builds for Maven Central Repository</a>
+project.
+You can check the reproducibility status of the artifacts on their
+<a href="https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/apache/logging/log4j/log4j/README.md"><code>org.apache.logging.log4j:log4j</code> RB check</a> page.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="sbom"><a class="anchor" href="#sbom"></a>Software Bill of Materials (SBOM)</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Each Apache Log4j artifact is accompanied by a Software Bill of Materials in
+<a href="https://cyclonedx.org/">CycloneDX format</a>.
+The SBOMs are published to the ASF Nexus repository with <code>cyclonedx</code> as classifier and <code>xml</code> as type and are also available in the binary distribution archive.</p>
+</div>
+<div class="paragraph">
+<p>See also <a href="https://logging.apache.org/download.html#sbom">Apache Logging Services SBOMs</a>.</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>Since Apache Log4j is a software library, the contents of the SBOMs constitute only a <strong>suggested</strong> list of component versions known to work with Apache Log4j.
+These versions are used by our unit tests.</p>
+</div>
+<div class="paragraph">
+<p>The <strong>effective</strong> list of components included in an application containing Apache Log4j can only be determined by the producer of the application.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="older"><a class="anchor" href="#older"></a>Older releases</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Are you looking for old versions of Log4j?
+While we recommend always using the latest version, you can find the older versions here:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="https://logging.apache.org/log4j/1.x/index.html">Log4j 1.x (End of Life, Java 1.4)</a></p>
+</li>
+<li>
+<p><a href="https://logging.apache.org/log4j/2.3.x/index.html">Log4j 2.3.x (Java 6)</a></p>
+</li>
+<li>
+<p><a href="https://logging.apache.org/log4j/2.12.x/index.html">Log4j 2.12.x (Java 7)</a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</article>
+  </div>
+</main>
+</div>
+<footer class="footer">
+  <p>
+    Copyright © 1999-2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+    Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+    Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+  </p>
+  <p>
+    Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+    Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+    Other names may be trademarks of their respective owners.
+  </p>
+</footer>
+<!-- Matomo -->
+<script>
+  var _paq = window._paq = window._paq || [];
+  _paq.push(["disableCookies"]);
+  _paq.push(['trackPageView']);
+  _paq.push(['enableLinkTracking']);
+  (function() {
+    var u="https://analytics.apache.org/";
+    _paq.push(['setTrackerUrl', u+'matomo.php']);
+    _paq.push(['setSiteId', '42']);
+    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+  })();
+</script>
+<noscript><p><img src="https://analytics.apache.org/matomo.php?idsite=42&amp;rec=1" style="border:0;" alt="" /></p></noscript>
+<!-- End Matomo Code -->
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+  </body>
+</html>
diff --git a/faq.html b/faq.html
new file mode 100644
index 0000000000..28466148e1
--- /dev/null
+++ b/faq.html
@@ -0,0 +1,854 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>F.A.Q. :: Apache Log4j</title>
+    <link rel="canonical" href="https://logging.apache.org/log4j/2.x/faq.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">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+  /* Swap colors of `IMPORTANT` and `WARNING` blocks */ 
+  .doc .admonitionblock.important .icon { background-color: #f70; }
+  .doc .admonitionblock.warning .icon { background-color: #e40046; }
+  /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+  .doc h1 { font-size: 1.9rem; }
+  .doc h2 { font-size: 1.7rem; }
+  .doc h3 { font-size: 1.5rem; font-weight: 400; }
+  .doc h4 { font-size: 1.3rem; font-weight: 500; }
+  .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+  .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+  /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+  .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+  .doc pre { font-size: 0.7rem; }
+  .doc .colist { font-size: 0.75rem; }
+  /* Make links more visible: */
+  .doc a { text-decoration: underline; }
+  .doc a code { text-decoration: underline; color: #1565c0; }
+  /* Tab header fonts aren't rendered good, adjusting the font weight: */
+  .tablist > ul li { font-weight: 500; }
+  /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+  .toc .toc-menu li[data-level="4"] a {
+    padding-left: 2.75rem;
+  }
+  /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+  .hljs-string {
+    color: #0f8532;
+  }
+</style>
+  </head>
+  <body class="article">
+<header class="header">
+  <nav class="navbar">
+    <div class="navbar-brand">
+      <div class="navbar-item">
+        <img src="./_/../_images/logo-small-white.png" alt="Apache Log4j"/>
+      </div>
+    </div>
+    <div id="topbar-nav" class="navbar-menu">
+      <div class="navbar-end">
+        <a class="navbar-item" href="https://logging.apache.org">a subproject of&nbsp;<strong>Apache Logging Services</strong></a>
+      </div>
+    </div>
+  </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+  <aside class="nav">
+    <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+  <nav class="nav-menu">
+    <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+    <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="download.html">Download</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="release-notes.html">Release Notes</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/index.html">Manual</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/getting-started.html">Getting started</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/installation.html">Installation</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html">API</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#loggers">Loggers</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/eventlogging.html">Event Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/simple-logger.html">Simple Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/status-logger.html">Status Logger</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/logbuilder.html">Fluent API</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#fish-tagging">Fish tagging</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customloglevels.html">Levels</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/markers.html">Markers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/thread-context.html">Thread Context</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/messages.html">Messages</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/flowtracing.html">Flow Tracing</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/implementation.html">Implementation</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/architecture.html">Architecture</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/config-intro.html">Configuration</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/configuration.html">Configuration file</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/systemproperties.html">Configuration properties</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customconfig.html">Programmatic configuration</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/appenders.html">Appenders</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/file.html">File appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/rolling-file.html">Rolling file appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/database.html">Database appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/network.html">Network Appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/message-queue.html">Message queue appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/delegating.html">Delegating Appenders</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/layouts.html">Layouts</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/json-template-layout.html">JSON Template Layout</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/pattern-layout.html">Pattern Layout</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/lookups.html">Lookups</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/filters.html">Filters</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/scripts.html">Scripts</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/jmx.html">JMX</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/extending.html">Extending</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/plugins.html">Plugins</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/performance.html">Performance</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/async.html">Asynchronous loggers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/garbagefree.html">Garbage-free logging</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">References</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="plugin-reference.html">Plugin reference</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="javadoc.html">Java API reference</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Resources</span>
+<ul class="nav-list">
+  <li class="nav-item is-current-page" data-depth="1">
+    <a class="nav-link" href="faq.html">F.A.Q.</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="migrate-from-log4j1.html">Migrating from Log4j 1</a>
+  </li>
+  <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" 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="hibernate.html">Integrating with Hibernate</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="jakarta.html">Integrating with Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="soa.html">Integrating with service-oriented architectures</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="development.html">Development</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="components.html">Components</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-iostreams.html">Log4j IOStreams</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-boot.html">Log4j Spring Boot Support</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j Spring Cloud Configuration</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-to-jul.html">Log4j-to-JUL bridge</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Related projects</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jakarta/index.html">Log4j Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jmx-gui/index.html">Log4j JMX GUI</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/kotlin/index.html">Log4j Kotlin</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/scala/index.html">Log4j Scala</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/tools/index.html">Log4j Tools</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/transform/index.html">Log4j Transformation Tools</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </nav>
+</div>
+    </div>
+  </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+  <a href="index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+  <ul>
+    <li><a href="index.html">Home</a></li>
+    <li>Resources</li>
+    <li><a href="faq.html">F.A.Q.</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/faq.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">F.A.Q.</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>This page compiles a list of frequently asked questions.
+If you don&#8217;t find the answer to your question, please consult to <a href="https://logging.apache.org/support.html">the support page</a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="config_location"><a class="anchor" href="#config_location"></a>How do I specify the configuration file location?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>By default, Log4j looks for a configuration file named <code>log4j2.xml</code>, <code>log4j2.properties</code>, etc. in the classpath.</p>
+</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>Log4j 1 (which has reached its end-of-life in 2015!) uses <code>log4j.xml</code>.
+Log4j 2 and onwards use <code>log4j2.xml</code>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>You can also specify the full path of the configuration file using a system property:<br>
+<code>-Dlog4j2.configurationFile=/path/to/log4j2.xml</code></p>
+</div>
+<div class="paragraph">
+<p>That property can also be included in a classpath resource file named <code>log4j2.component.properties</code>.</p>
+</div>
+<div class="paragraph">
+<p>Web applications can specify the Log4j configuration file location with a servlet context parameter.
+See <a href="jakarta.html#log4jConfiguration" class="xref page">the related page on web applications</a>.</p>
+</div>
+<div class="paragraph">
+<p>Refer to <a href="manual/configuration.html" class="xref page">the Configuration page</a> for further details.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="config_from_code"><a class="anchor" href="#config_from_code"></a>How do I configure Log4j programmatically?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Starting with version <code>2.4</code>, Log4j provides <a href="manual/customconfig.html" class="xref page">an API for programmatic configuration</a>.
+<a href="javadoc/log4j-core/org/apache/logging/log4j/core/config/builder/api/ConfigurationBuilder.html">The new <code>ConfigurationBuilder</code> API</a> allows you to create <code>Configuration</code>s in code by constructing component definitions without requiring you to know about the internals of actual configuration objects like loggers and appenders.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="reconfig_from_code"><a class="anchor" href="#reconfig_from_code"></a>How do I reconfigure Log4j programmatically?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You can reconfigure Log4j programmatically using <a href="javadoc/log4j-core/org/apache/logging/log4j/core/config/Configurator.html">the <code>Configurator</code> API</a> as follows:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">import org.apache.logging.log4j.core.config.Configurator;
+
+URI configSourceUri = new File("/path/to/a/different/log4j2.xml").toURI();
+Configurator.reconfigure(configSourceUri);</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="shutdown"><a class="anchor" href="#shutdown"></a>How do I shut down Log4j programmatically?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Normally there is no need to do this manually.
+Each <code>LoggerContext</code> registers a shutdown hook that takes care of releasing resources when the JVM exits, unless the <code>log4j.shutdownHookEnabled</code> system property is set to <code>false</code>.
+Likewise, <a href="jakarta.html" class="xref page">Web applications</a> replace the shutdown hook with their own resource management mechanisms.
+That is, they clean up necessary resources when the web application is stopped.
+However, if you need to manually shut down Log4j, you can use one of the <code>shutdown()</code> methods of <a href="javadoc/log4j-api/org/apache/logging/log4j/LogManager.html#shutdown()"><code>LogManager</code></a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="reconfig_level_from_code"><a class="anchor" href="#reconfig_level_from_code"></a>How do I set a logger level programmatically?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You can set the level of a logger using <a href="javadoc/log4j-core/org/apache/logging/log4j/core/config/Configurator.html"><code>Configurator</code></a> from Log4j Core:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">import org.apache.logging.log4j.core.config.Configurator;
+
+// Set the level of particular logger associated with a class
+Configurator.setLevel("com.example.Foo", Level.DEBUG);
+
+// Set the level of the root logger
+Configurator.setRootLevel(Level.DEBUG);</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="config_sep_appender_level"><a class="anchor" href="#config_sep_appender_level"></a>How do I send log messages with different levels to different appenders?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You don&#8217;t need to declare separate loggers to achieve this.
+You can set the logging level on the <code>AppenderRef</code> element.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+               xmlns="https://logging.apache.org/xml/ns"
+               xsi:schemaLocation="
+                       https://logging.apache.org/xml/ns
+                       https://logging.apache.org/xml/ns/log4j-config-2.xsd"&gt;
+  &lt;appenders&gt;
+    &lt;File name="file" fileName="app.log"&gt;
+      &lt;PatternLayout pattern="%d %p %c{1.} [%t] %m %ex%n"/&gt;
+    &lt;/File&gt;
+    &lt;Console name="stdout" target="SYSTEM_OUT"&gt;
+      &lt;PatternLayout pattern="%m%n"/&gt;
+    &lt;/Console&gt;
+  &lt;/appenders&gt;
+  &lt;loggers&gt;
+    &lt;root level="WARN"&gt;
+      &lt;AppenderRef ref="file" level="DEBUG"/&gt;
+      &lt;AppenderRef ref="stdout" level="INFO"/&gt;
+    &lt;/root&gt;
+  &lt;/loggers&gt;
+&lt;/Configuration&gt;</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="troubleshooting"><a class="anchor" href="#troubleshooting"></a>How do I troubleshoot my setup?</h2>
+<div class="sectionbody">
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Make sure you have <a href="manual/installation.html" class="xref page">the right JAR files</a> on your classpath.</p>
+</li>
+<li>
+<p>Check the name of your configuration file.
+By default, Log4j looks for a configuration file named <code>log4j2.xml</code> on the classpath.
+Note the <code>2</code> in the file name!
+(See <a href="manual/configuration.html" class="xref page">the Configuration page</a> for more details.)</p>
+</li>
+<li>
+<p>Increase the logging verbosity of the internal <a href="manual/status-logger.html" class="xref page">Status Logger</a>:<br>
+<code>-Dlog4j2.statusLoggerLevel=TRACE</code></p>
+</li>
+<li>
+<p>Enable all internal debug logging: <code>-Dlog4j2.debug</code>.
+This disables level-based <a href="manual/status-logger.html" class="xref page">Status Logger</a> filtering and effectively allows all status logs.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="separate_log_files"><a class="anchor" href="#separate_log_files"></a>How do I dynamically write to separate log files?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You can use <a href="manual/appenders/delegating.html#RoutingAppender" class="xref page">the routing appender</a> to evaluate a log message and forward it to a particular appender.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="api-tradeoffs"><a class="anchor" href="#api-tradeoffs"></a>What are the trade-offs of using Log4j API versus SLF4J?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Log4j API and SLF4J have a lot in common.
+They both share the objective of cleanly separating the logging API from the implementation.
+We believe that Log4j API can help make your application more performant while offering more functionality and more flexibility.</p>
+</div>
+<div class="paragraph">
+<p>There may be a concern that using the Log4j API will tightly couple your application to Log4j.
+This is not the case: applications coded to Log4j API always have the option to use any SLF4J-compliant logging implementation with the <code>log4j-to-slf4j</code> bridge.
+See <a href="manual/installation.html" class="xref page">the Installation page</a> for details.</p>
+</div>
+<div class="paragraph">
+<p>There are several advantages to using Log4j API:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>SLF4J forces your application to log <code>String</code>s.
+Log4j API supports logging any <code>CharSequence</code> if you want to log text, but also supports logging any <code>Object</code> as is.
+It is the responsibility of the logging <em>implementation</em> to handle this object, and we consider it a design mistake to limit applications to logging <code>String</code>s.</p>
+</li>
+<li>
+<p>Log4j API offers support for logging <a href="manual/messages.html" class="xref page"><code>Message</code> objects</a>.
+Messages allow support for interesting and complex constructs to be passed through the logging system and be efficiently manipulated.
+Users are free to create their own message types and write custom layouts, filters and lookups to manipulate them.</p>
+</li>
+<li>
+<p>Log4j API supports <a href="manual/api.html#fluent-api" class="xref page">lambda expressions</a> both in its plain and fluent API.</p>
+</li>
+<li>
+<p>Log4j API has better support for <a href="manual/garbagefree.html" class="xref page">garbage-free logging</a>: it avoids creating <code>vararg</code> arrays and avoids creating <code>String</code>s when logging <code>CharSequence</code>s.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="gc-free-slf4j"><a class="anchor" href="#gc-free-slf4j"></a>Is Log4j still garbage-free when I use SLF4J?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>If you use SLF4J as your logging API and Log4j Core as the logging implementation, yes.
+The <code>log4j-slf4j-impl</code> and <code>log4j-slf4j2-impl</code> bridges (together with <code>log4j-core</code>) implement the <code>org.slf4j.Logger</code> methods to be garbage-free.
+However, bear in mind that there are some limitations:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>The SLF4J API only offers up to two parameters for a parameterized message.
+More than that uses <code>vararg</code>s, which create a temporary object for the parameter array.
+In contrast, Log4j API has methods for up to ten unrolled parameters.</p>
+</li>
+<li>
+<p>SLF4J forces your application to log <code>String</code>s.
+Log4j API lets you log any <code>CharSequence</code> or <code>Object</code>.
+Log4j Core can log any <code>Object</code> that implements <code>CharSequence</code> or <code>org.apache.logging.log4j.util.StringBuilderFormattable</code> without creating garbage.</p>
+</li>
+<li>
+<p>The <a href="https://www.slf4j.org/api/org/slf4j/spi/LocationAwareLogger.html#log(org.slf4j.Marker,java.lang.String,int,java.lang.String,java.lang.Object%5B%5D,java.lang.Throwable)"><code>org.slf4j.spi.LocationAwareLogger::log</code></a> method is not yet implemented in a garbage-free manner in the <code>log4j-slf4j-impl</code> and <code>log4j-slf4j2-impl</code> bridges.
+It creates a new message object for each call.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="gc-free-domain-object"><a class="anchor" href="#gc-free-domain-object"></a>How do I log my domain object without creating garbage?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>One option is to let the domain object implement <code>CharSequence</code>.
+However, for many domain objects it may not be trivial to implement this without allocating temporary objects.</p>
+</div>
+<div class="paragraph">
+<p>An alternative is to implement the <code>org.apache.logging.log4j.util.StringBuilderFormattable</code> interface.
+If an object is logged that implements this interface, its <code>formatTo(StringBuilder)</code> method is called instead of <code>toString()</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="logger-wrapper"><a class="anchor" href="#logger-wrapper"></a>How do I create a custom logger wrapper that shows the correct class, method, and line number?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Log4j remembers the fully qualified class name (FQCN) of the logger and uses this to walk the stack trace for every log event when configured to print location.</p>
+</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>Be aware that logging with location is slow and may impact the performance of your application.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The problem with custom logger wrappers is that they have a different FQCN than the actual logger, so Log4j can&#8217;t find the place where your custom logger was called.</p>
+</div>
+<div class="paragraph">
+<p>The solution is to provide the correct FQCN.
+The easiest way to do this is to let Log4j generate the logger wrapper for you.
+Log4j comes with a Logger wrapper generator tool.
+This tool was originally meant to support custom log levels and was moved to the
+<a href="https://logging.apache.org/log4j/transform/latest/index.html">Log4j Transform subproject</a>.
+The generated logger code will take care of the FQCN.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="proguard-rules"><a class="anchor" href="#proguard-rules"></a>Which rules do I need to add when ProGuard minification is enabled?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>When you are using Log4j with ProGuard/R8 enabled, you need to add the following rules to your configuration file:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-none hljs">-keep,allowoptimization class org.apache.logging.log4j.** { *; }</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="package-scanning"><a class="anchor" href="#package-scanning"></a>Why am I receiving warnings about package scanning?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Since Log4j 2.19.1, the package scanning feature has been deprecated (see
+<a href="https://issues.apache.org/jira/browse/LOG4J2-3644">LOG4J2-3644</a>):</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>You should remove the <code>packages</code> attribute from your
+<a href="manual/configuration.html" class="xref page">Log4j Core configuration files</a>.</p>
+</li>
+<li>
+<p>You should remove any calls to
+<a href="javadoc/log4j-core/org/apache/logging/log4j/core/config/plugins/util/PluginManager.html#addPackage(java.lang.String)">PluginManager.addPackage()</a>
+and
+<a href="javadoc/log4j-core/org/apache/logging/log4j/core/config/plugins/util/PluginManager.html#addPackages(java.util.Collection)">PluginManager.addPackages()</a>
+from your code.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Package scanning has been replaced with Log4j plugin descriptors, which have been available since version 2.0 and widely used by Log4j extension JARs.</p>
+</div>
+<div class="paragraph">
+<p>If you are developing custom plugins, see <a href="manual/plugins.html#plugin-registry" class="xref page">Plugin registration</a> on details about plugin descriptors.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="plugin-descriptors"><a class="anchor" href="#plugin-descriptors"></a>Why am I receiving warnings about missing plugin descriptors?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p><a href="manual/plugins.html" class="xref page">Log4j Plugins</a>
+should be registered in a:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-none hljs">META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>file on the classpath of the Java applications.</p>
+</div>
+<div class="paragraph">
+<p>Starting with Log4j version <code>2.24.0</code>, you will receive a warning if a plugin is not registered properly.
+The common causes for improperly registered plugins are:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>One of the <a href="components.html" class="xref page">Log4j artifacts</a> might be corrupted.
+If you are using a single-JAR application, this might be caused by an improper shading configuration.
+See <a href="#shading">Shading/Shadowing</a> on how to properly shade Log4j artifacts.</p>
+</li>
+<li>
+<p>A custom Log4j plugin has not been properly registered.
+See <a href="manual/plugins.html#plugin-registry" class="xref page">Registering plugins</a> for more details.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="single-jar"><a class="anchor" href="#single-jar"></a>How do I create a single-JAR application containing Log4j Core?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>There are two ways to create single-JAR applications: you can create
+<a href="#jar-in-jar">JAR-in-JAR executable packages</a>
+or
+<a href="#shading">shaded JARs</a>.
+See the sections below on how to properly use these techniques with Log4j Core.</p>
+</div>
+<div class="sect2">
+<h3 id="jar-in-jar"><a class="anchor" href="#jar-in-jar"></a>Jar-in-Jar</h3>
+<div class="paragraph">
+<p>The easiest and recommended way to create single-JAR applications containing Log4j Core is to include <strong>unmodified</strong> versions of Log4j artifacts inside the JAR file of your application.
+You can do it with the following build tool plugins:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="https://docs.spring.io/spring-boot/maven-plugin/packaging.html">Spring Boot Maven Plugin</a>,</p>
+</li>
+<li>
+<p><a href="https://docs.spring.io/spring-boot/gradle-plugin/packaging.html">Spring Boot Gradle Plugin</a>,</p>
+</li>
+<li>
+<p><a href="https://github.com/sbt/sbt-onejar">sbt-onejar plugin</a>.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="shading"><a class="anchor" href="#shading"></a>Shading/Shadowing</h3>
+<div class="paragraph">
+<p>The shading process unwraps all the files contained in dependency JARs and copies them to the JAR containing the application.
+Since multiple JARs can contain files with the same name, you need to properly resolve the file naming conflicts that arise.</p>
+</div>
+<div class="paragraph">
+<p>If your application uses Log4j Core, the following conflicts must be resolved:</p>
+</div>
+<details>
+<summary class="title">Click to list the possible file name conflicts</summary>
+<div class="content">
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>module-info.class</code></dt>
+<dd>
+<p>If you are writing a JPMS application, you need to propertly merge these files.
+Otherwise, they should be discarded.</p>
+</dd>
+<dt class="hdlist1"><code>META-INF/MANIFEST.MF</code></dt>
+<dd>
+<div class="paragraph">
+<p>If you are writing a Java SE application, you only need to add:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-manifest hljs" data-lang="manifest">Multi-Release: true</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>to your application manifest.</p>
+</div>
+<div class="paragraph">
+<p>If you are writing an OSGi application, you need to properly merge the OSGi headers.</p>
+</div>
+</dd>
+<dt class="hdlist1"><code>META-INF/DEPENDENCIES</code></dt>
+<dt class="hdlist1"><code>META-INF/LICENSE</code></dt>
+<dt class="hdlist1"><code>META-INF/NOTICE</code></dt>
+<dd>
+<p>Ask your legal department on how to handle these files.</p>
+</dd>
+<dt class="hdlist1"><code>META-INF/services/*</code></dt>
+<dd>
+<p>These files contain
+<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html"><code>ServiceLoader</code> descriptors</a>.
+You need to properly merge them by concatenating conflicting files.</p>
+</dd>
+<dt class="hdlist1"><code>META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat</code></dt>
+<dd>
+<p>These files contain Log4j plugin descriptors and need to be properly merged using the appropriate resource transformer for your shading plugin:</p>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><a href="https://maven.apache.org/plugins/maven-assembly-plugin/">Maven Assembly Plugin</a></dt>
+<dt class="hdlist1"><a href="https://github.com/sbt/sbt-assembly">SBT Assembly Plugin</a></dt>
+<dd>
+<p>We are not aware of any resource transformers capable of merging Log4j plugin descriptors.</p>
+</dd>
+<dt class="hdlist1"><a href="https://maven.apache.org/plugins/maven-shade-plugin/">Maven Shade Plugin</a></dt>
+<dd>
+<p>You need to use the
+<a href="https://logging.staged.apache.org/log4j/transform/log4j-transform-maven-shade-plugin-extensions.html#log4j-plugin-cache-transformer">Log4j Plugin Descriptor Transformer</a>.</p>
+</dd>
+<dt class="hdlist1"><a href="https://gradleup.com/shadow/">Gradle Shadow Plugin</a></dt>
+<dd>
+<p>You need to use the
+<a href="https://github.com/GradleUp/shadow/blob/main/src/main/groovy/com/github/jengelman/gradle/plugins/shadow/transformers/Log4j2PluginsCacheFileTransformer.groovy"><code>Log4j2PluginsCacheFileTransformer</code></a>.</p>
+</dd>
+</dl>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</details>
+</div>
+</div>
+</div>
+</article>
+  </div>
+</main>
+</div>
+<footer class="footer">
+  <p>
+    Copyright © 1999-2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+    Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+    Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+  </p>
+  <p>
+    Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+    Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+    Other names may be trademarks of their respective owners.
+  </p>
+</footer>
+<!-- Matomo -->
+<script>
+  var _paq = window._paq = window._paq || [];
+  _paq.push(["disableCookies"]);
+  _paq.push(['trackPageView']);
+  _paq.push(['enableLinkTracking']);
+  (function() {
+    var u="https://analytics.apache.org/";
+    _paq.push(['setTrackerUrl', u+'matomo.php']);
+    _paq.push(['setSiteId', '42']);
+    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+  })();
+</script>
+<noscript><p><img src="https://analytics.apache.org/matomo.php?idsite=42&amp;rec=1" style="border:0;" alt="" /></p></noscript>
+<!-- End Matomo Code -->
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+  </body>
+</html>
diff --git a/hibernate.html b/hibernate.html
new file mode 100644
index 0000000000..72a0be0efc
--- /dev/null
+++ b/hibernate.html
@@ -0,0 +1,606 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>Integrating with Hibernate :: Apache Log4j</title>
+    <link rel="canonical" href="https://logging.apache.org/log4j/2.x/hibernate.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">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+  /* Swap colors of `IMPORTANT` and `WARNING` blocks */ 
+  .doc .admonitionblock.important .icon { background-color: #f70; }
+  .doc .admonitionblock.warning .icon { background-color: #e40046; }
+  /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+  .doc h1 { font-size: 1.9rem; }
+  .doc h2 { font-size: 1.7rem; }
+  .doc h3 { font-size: 1.5rem; font-weight: 400; }
+  .doc h4 { font-size: 1.3rem; font-weight: 500; }
+  .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+  .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+  /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+  .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+  .doc pre { font-size: 0.7rem; }
+  .doc .colist { font-size: 0.75rem; }
+  /* Make links more visible: */
+  .doc a { text-decoration: underline; }
+  .doc a code { text-decoration: underline; color: #1565c0; }
+  /* Tab header fonts aren't rendered good, adjusting the font weight: */
+  .tablist > ul li { font-weight: 500; }
+  /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+  .toc .toc-menu li[data-level="4"] a {
+    padding-left: 2.75rem;
+  }
+  /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+  .hljs-string {
+    color: #0f8532;
+  }
+</style>
+  </head>
+  <body class="article">
+<header class="header">
+  <nav class="navbar">
+    <div class="navbar-brand">
+      <div class="navbar-item">
+        <img src="./_/../_images/logo-small-white.png" alt="Apache Log4j"/>
+      </div>
+    </div>
+    <div id="topbar-nav" class="navbar-menu">
+      <div class="navbar-end">
+        <a class="navbar-item" href="https://logging.apache.org">a subproject of&nbsp;<strong>Apache Logging Services</strong></a>
+      </div>
+    </div>
+  </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+  <aside class="nav">
+    <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+  <nav class="nav-menu">
+    <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+    <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="download.html">Download</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="release-notes.html">Release Notes</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/index.html">Manual</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/getting-started.html">Getting started</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/installation.html">Installation</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html">API</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#loggers">Loggers</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/eventlogging.html">Event Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/simple-logger.html">Simple Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/status-logger.html">Status Logger</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/logbuilder.html">Fluent API</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#fish-tagging">Fish tagging</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customloglevels.html">Levels</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/markers.html">Markers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/thread-context.html">Thread Context</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/messages.html">Messages</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/flowtracing.html">Flow Tracing</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/implementation.html">Implementation</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/architecture.html">Architecture</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/config-intro.html">Configuration</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/configuration.html">Configuration file</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/systemproperties.html">Configuration properties</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customconfig.html">Programmatic configuration</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/appenders.html">Appenders</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/file.html">File appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/rolling-file.html">Rolling file appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/database.html">Database appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/network.html">Network Appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/message-queue.html">Message queue appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/delegating.html">Delegating Appenders</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/layouts.html">Layouts</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/json-template-layout.html">JSON Template Layout</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/pattern-layout.html">Pattern Layout</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/lookups.html">Lookups</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/filters.html">Filters</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/scripts.html">Scripts</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/jmx.html">JMX</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/extending.html">Extending</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/plugins.html">Plugins</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/performance.html">Performance</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/async.html">Asynchronous loggers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/garbagefree.html">Garbage-free logging</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">References</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="plugin-reference.html">Plugin reference</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="javadoc.html">Java API reference</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Resources</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="faq.html">F.A.Q.</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="migrate-from-log4j1.html">Migrating from Log4j 1</a>
+  </li>
+  <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" 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="hibernate.html">Integrating with Hibernate</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="jakarta.html">Integrating with Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="soa.html">Integrating with service-oriented architectures</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="development.html">Development</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="components.html">Components</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-iostreams.html">Log4j IOStreams</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-boot.html">Log4j Spring Boot Support</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j Spring Cloud Configuration</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-to-jul.html">Log4j-to-JUL bridge</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Related projects</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jakarta/index.html">Log4j Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jmx-gui/index.html">Log4j JMX GUI</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/kotlin/index.html">Log4j Kotlin</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/scala/index.html">Log4j Scala</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/tools/index.html">Log4j Tools</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/transform/index.html">Log4j Transformation Tools</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </nav>
+</div>
+    </div>
+  </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+  <a href="index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+  <ul>
+    <li><a href="index.html">Home</a></li>
+    <li>Resources</li>
+    <li><a href="hibernate.html">Integrating with Hibernate</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/hibernate.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">Integrating with Hibernate</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p><a href="https://hibernate.org">Hibernate</a> is an Object/Relational Mapping (ORM) solution for Java environments.
+It uses <a href="https://github.com/jboss-logging/jboss-logging">JBoss Logging</a> as its logging API.
+If you have a working <a href="manual/installation.html#impl-core" class="xref page">Log4j installation</a>, JBoss Logging requires no extra installation steps on your part, since it is shipped with an integrated bridge to Log4j API – see <a href="https://github.com/jboss-logging/jboss-logging/blob/main/README.adoc#supported-log-managers">Supported Log Managers by JBoss Logging</a> for more information.</p>
+</div>
+<details>
+<summary class="title">Struggling with the logging API, implementation, and bridge concepts? Click for an introduction.</summary>
+<div class="content">
+<div id="logging-api" class="dlist">
+<dl>
+<dt class="hdlist1">Logging API</dt>
+<dd>
+<p>A logging API is an interface your code or your dependencies directly logs against.
+It is required at compile-time.
+It is implementation agnostic to ensure that your application can write logs, but is not tied to a specific logging implementation.
+Log4j API, <a href="https://www.slf4j.org">SLF4J</a>, <a href="https://docs.oracle.com/javase/8/docs/technotes/guides/logging/overview.html">JUL (Java Logging)</a>, <a href="https://commons.apache.org/proper/commons-logging/">JCL (Apache Commons Logging)</a>, <a href="https://openjdk.org/jeps/264">JPL (Java Platform Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging">JBoss Logging</a> are major logging APIs.</p>
+</dd>
+</dl>
+</div>
+<div id="logging-impl" class="dlist">
+<dl>
+<dt class="hdlist1">Logging implementation</dt>
+<dd>
+<p>A logging implementation is only required at runtime and can be changed without the need to recompile your software.
+Log4j Core, <a href="https://docs.oracle.com/javase/8/docs/technotes/guides/logging/overview.html">JUL (Java Logging)</a>, <a href="https://logback.qos.ch">Logback</a> are the most well-known logging implementations.</p>
+</dd>
+</dl>
+</div>
+<div id="logging-bridge" class="dlist">
+<dl>
+<dt class="hdlist1">Logging bridge</dt>
+<dd>
+<p>Logging implementations accept input from a single logging API of their preference; Log4j Core from Log4j API, Logback from SLF4J, etc.
+A logging bridge is a simple logging implementation of a logging API that forwards all messages to a foreign logging API.
+Logging bridges allow a logging implementation to accept input from other logging APIs that are not their primary logging API.
+For instance, <code>log4j-slf4j2-impl</code> <em>bridges</em> SLF4J calls to Log4 API and effectively enables Log4j Core to accept input from SLF4J.</p>
+</dd>
+</dl>
+</div>
+<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="content">
+<img src="_images/diag-a51b68065f249459078382aa4c61888857f01b2c.svg" alt="Visualization of a typical Log4j Core installation with SLF4J, JUL, and JPL bridges">
+</div>
+<div class="title">Figure 1. Visualization of a typical Log4j Core installation with SLF4J, JUL, and JPL bridges</div>
+</div>
+</div>
+</details>
+</div>
+</div>
+<div class="sect1">
+<h2 id="config"><a class="anchor" href="#config"></a>Configuration</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>After successfully wiring Hibernate – to be precise, JBoss Logging – to log using Log4j API, you can fine-tune the verbosity of Hibernate loggers in your Log4j Core installation to accommodate your needs:</p>
+</div>
+<div id="_tabs_1" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_1_xml" class="tab">
+<p>XML</p>
+</li>
+<li id="_tabs_1_json" class="tab">
+<p>JSON</p>
+</li>
+<li id="_tabs_1_yaml" class="tab">
+<p>YAML</p>
+</li>
+<li id="_tabs_1_properties" class="tab">
+<p>Properties</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_1_xml--panel" class="tabpanel" aria-labelledby="_tabs_1_xml">
+<div class="listingblock">
+<div class="title">Snippet from an example <a href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examples/hibernate/log4j2.xml"><code>log4j2.xml</code></a> configuring Hibernate-specific loggers</div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;Loggers&gt;
+
+  &lt;!-- Log just the SQL --&gt;
+  &lt;Logger name="org.hibernate.SQL" level="DEBUG"/&gt;
+
+  &lt;!-- Log JDBC bind parameters and extracted values
+
+       Warning! <i class="conum" data-value="1"></i><b>(1)</b>
+       JDBC bind parameters can contain sensitive data!
+       Passwords, credit card numbers, etc.
+       Use these logger configurations with care! --&gt;
+  &lt;!--
+  &lt;Logger name="org.hibernate.type" level="TRACE"/&gt;
+  &lt;Logger name="org.hibernate.orm.jdbc.bind" level="TRACE"/&gt;
+  &lt;Logger name="org.hibernate.orm.jdbc.extract" level="TRACE"/&gt;
+  --&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_1_json--panel" class="tabpanel" aria-labelledby="_tabs_1_json">
+<div class="listingblock">
+<div class="title">Snippet from an example <a href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examples/hibernate/log4j2.json"><code>log4j2.json</code></a> configuring Hibernate-specific loggers</div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">"Loggers": {
+  "Logger": [
+
+    // Log just the SQL
+    {
+      "name": "org.hibernate.SQL",
+      "level": "DEBUG"
+    }
+
+    // Log JDBC bind parameters and extracted values
+    //
+    // Warning! <i class="conum" data-value="1"></i><b>(1)</b>
+    // JDBC bind parameters can contain sensitive data:
+    // Passwords, credit card numbers, etc.
+    // Use these logger configurations with care!
+    //{
+    //  "name": "org.hibernate.type",
+    //  "level": "TRACE"
+    //},
+    //{
+    //  "name": "org.hibernate.orm.jdbc.bind",
+    //  "level": "TRACE"
+    //},
+    //{
+    //  "name": "org.hibernate.orm.jdbc.extract",
+    //  "level": "TRACE"
+    //}</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_1_yaml--panel" class="tabpanel" aria-labelledby="_tabs_1_yaml">
+<div class="listingblock">
+<div class="title">Snippet from an example <a href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examples/hibernate/log4j2.yaml"><code>log4j2.yaml</code></a> configuring Hibernate-specific loggers</div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">Loggers:
+
+  Logger:
+
+    #  Log just the SQL
+    - name: "org.hibernate.SQL"
+      level: "DEBUG"
+
+    # Log JDBC bind parameters and extracted values
+    #
+    # Warning! <i class="conum" data-value="1"></i><b>(1)</b>
+    # JDBC bind parameters can contain sensitive data!
+    # Passwords, credit card numbers, etc.
+    # Use these logger configurations with care!
+    #- name: "org.hibernate.type"
+    #  level: "TRACE"
+    #- name: "org.hibernate.orm.jdbc.bind"
+    #  level: "TRACE"
+    #- name: "org.hibernate.orm.jdbc.extract"
+    #  level: "TRACE"</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_1_properties--panel" class="tabpanel" aria-labelledby="_tabs_1_properties">
+<div class="listingblock">
+<div class="title">Snippet from an example <a href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examples/hibernate/log4j2.properties"><code>log4j2.properties</code></a> configuring Hibernate-specific loggers</div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"># Log just the SQL
+logger.0.name = org.hibernate.SQL
+logger.0.level = DEBUG
+
+# Log JDBC bind parameters and extracted values
+#
+# Warning! <i class="conum" data-value="1"></i><b>(1)</b>
+# JDBC bind parameters can contain sensitive data!
+# Passwords, credit card numbers, etc.
+# Use these logger configurations with great care!
+#logger.1.name = org.hibernate.type
+#logger.1.level = TRACE
+#logger.2.name = org.hibernate.orm.jdbc.bind
+#logger.2.level = TRACE
+#logger.3.name = org.hibernate.orm.jdbc.bind
+#logger.3.level = TRACE</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="colist arabic">
+<table>
+<tr>
+<td><i class="conum" data-value="1"></i><b>1</b></td>
+<td>Due to the sensitivity of the data involved, you are strongly advised to use these logger configurations <strong>only in development environments</strong>.</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>See <a href="https://docs.jboss.org/hibernate/orm/6.5/userguide/html_single/Hibernate_User_Guide.html#best-practices-logging">the Logging Best Practices section in Hibernate Manual</a> for further details.</p>
+</div>
+<div id="show-sql" class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-warning" title="Warning"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>We strongly advise you to <strong>avoid using <a href="https://docs.jboss.org/hibernate/orm/6.5/userguide/html_single/Hibernate_User_Guide.html#settings-hibernate.show_sql">the <code>hibernate.show_sql</code> property</a>!</strong>
+(It maps to <code>spring.jpa.show-sql</code> in Spring Boot.)
+<code>hibernate.show_sql</code> writes to the standard error output stream, not to the logging API.
+Logger-based configuration exemplified above gives a finer-grained control over logging and integrates with the logging system.
+<a href="https://stackoverflow.com/questions/73734494/disabling-hibernate-console-log-in-spring-datajpatest">Combining <code>hibernate.show_sql</code> with logger-based configuration duplicates the logging effort.</a></p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</article>
+  </div>
+</main>
+</div>
+<footer class="footer">
+  <p>
+    Copyright © 1999-2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+    Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+    Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+  </p>
+  <p>
+    Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+    Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+    Other names may be trademarks of their respective owners.
+  </p>
+</footer>
+<!-- Matomo -->
+<script>
+  var _paq = window._paq = window._paq || [];
+  _paq.push(["disableCookies"]);
+  _paq.push(['trackPageView']);
+  _paq.push(['enableLinkTracking']);
+  (function() {
+    var u="https://analytics.apache.org/";
+    _paq.push(['setTrackerUrl', u+'matomo.php']);
+    _paq.push(['setSiteId', '42']);
+    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+  })();
+</script>
+<noscript><p><img src="https://analytics.apache.org/matomo.php?idsite=42&amp;rec=1" style="border:0;" alt="" /></p></noscript>
+<!-- End Matomo Code -->
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+  </body>
+</html>
diff --git a/index.html b/index.html
new file mode 100644
index 0000000000..2fc012bfe1
--- /dev/null
+++ b/index.html
@@ -0,0 +1,483 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>Apache Log4j :: Apache Log4j</title>
+    <link rel="canonical" href="https://logging.apache.org/log4j/2.x/index.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">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+  /* Swap colors of `IMPORTANT` and `WARNING` blocks */ 
+  .doc .admonitionblock.important .icon { background-color: #f70; }
+  .doc .admonitionblock.warning .icon { background-color: #e40046; }
+  /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+  .doc h1 { font-size: 1.9rem; }
+  .doc h2 { font-size: 1.7rem; }
+  .doc h3 { font-size: 1.5rem; font-weight: 400; }
+  .doc h4 { font-size: 1.3rem; font-weight: 500; }
+  .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+  .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+  /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+  .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+  .doc pre { font-size: 0.7rem; }
+  .doc .colist { font-size: 0.75rem; }
+  /* Make links more visible: */
+  .doc a { text-decoration: underline; }
+  .doc a code { text-decoration: underline; color: #1565c0; }
+  /* Tab header fonts aren't rendered good, adjusting the font weight: */
+  .tablist > ul li { font-weight: 500; }
+  /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+  .toc .toc-menu li[data-level="4"] a {
+    padding-left: 2.75rem;
+  }
+  /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+  .hljs-string {
+    color: #0f8532;
+  }
+</style>
+  </head>
+  <body class="article">
+<header class="header">
+  <nav class="navbar">
+    <div class="navbar-brand">
+      <div class="navbar-item">
+        <img src="./_/../_images/logo-small-white.png" alt="Apache Log4j"/>
+      </div>
+    </div>
+    <div id="topbar-nav" class="navbar-menu">
+      <div class="navbar-end">
+        <a class="navbar-item" href="https://logging.apache.org">a subproject of&nbsp;<strong>Apache Logging Services</strong></a>
+      </div>
+    </div>
+  </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+  <aside class="nav">
+    <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+  <nav class="nav-menu">
+    <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+    <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="download.html">Download</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="release-notes.html">Release Notes</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/index.html">Manual</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/getting-started.html">Getting started</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/installation.html">Installation</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html">API</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#loggers">Loggers</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/eventlogging.html">Event Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/simple-logger.html">Simple Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/status-logger.html">Status Logger</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/logbuilder.html">Fluent API</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#fish-tagging">Fish tagging</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customloglevels.html">Levels</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/markers.html">Markers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/thread-context.html">Thread Context</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/messages.html">Messages</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/flowtracing.html">Flow Tracing</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/implementation.html">Implementation</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/architecture.html">Architecture</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/config-intro.html">Configuration</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/configuration.html">Configuration file</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/systemproperties.html">Configuration properties</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customconfig.html">Programmatic configuration</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/appenders.html">Appenders</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/file.html">File appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/rolling-file.html">Rolling file appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/database.html">Database appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/network.html">Network Appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/message-queue.html">Message queue appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/delegating.html">Delegating Appenders</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/layouts.html">Layouts</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/json-template-layout.html">JSON Template Layout</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/pattern-layout.html">Pattern Layout</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/lookups.html">Lookups</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/filters.html">Filters</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/scripts.html">Scripts</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/jmx.html">JMX</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/extending.html">Extending</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/plugins.html">Plugins</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/performance.html">Performance</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/async.html">Asynchronous loggers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/garbagefree.html">Garbage-free logging</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">References</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="plugin-reference.html">Plugin reference</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="javadoc.html">Java API reference</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Resources</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="faq.html">F.A.Q.</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="migrate-from-log4j1.html">Migrating from Log4j 1</a>
+  </li>
+  <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" 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="hibernate.html">Integrating with Hibernate</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="jakarta.html">Integrating with Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="soa.html">Integrating with service-oriented architectures</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="development.html">Development</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="components.html">Components</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-iostreams.html">Log4j IOStreams</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-boot.html">Log4j Spring Boot Support</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j Spring Cloud Configuration</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-to-jul.html">Log4j-to-JUL bridge</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Related projects</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jakarta/index.html">Log4j Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jmx-gui/index.html">Log4j JMX GUI</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/kotlin/index.html">Log4j Kotlin</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/scala/index.html">Log4j Scala</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/tools/index.html">Log4j Tools</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/transform/index.html">Log4j Transformation Tools</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </nav>
+</div>
+    </div>
+  </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+  <a href="index.html" class="home-link is-current"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+  <ul>
+    <li><a href="index.html">Home</a></li>
+    <li><a href="index.html">Apache Log4j</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/index.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">Apache Log4j</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Apache Log4j is a versatile, industrial-grade Java logging framework composed of an API, its implementation,  and components to assist the deployment for various use cases.
+The project is actively maintained by a <a href="https://logging.apache.org/team-list.html">team</a> of volunteers and <a href="https://logging.apache.org/support.html">support</a>ed by a big community.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="shortcuts"><a class="anchor" href="#shortcuts"></a>Shortcuts</h2>
+<div class="sectionbody">
+<div class="ulist">
+<ul>
+<li>
+<p><a href="manual/getting-started.html" class="xref page">Getting started</a></p>
+</li>
+<li>
+<p><a href="manual/installation.html" class="xref page">How can I install Log4j? Which dependencies are needed?</a></p>
+</li>
+<li>
+<p><a href="manual/configuration.html" class="xref page">How can I configure my <code>log4j2.xml</code>?</a></p>
+</li>
+<li>
+<p><a href="release-notes.html" class="xref page">Where are the release notes?</a></p>
+</li>
+<li>
+<p><a href="https://logging.apache.org/support.html"><strong>I need help!</strong></a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="features"><a class="anchor" href="#features"></a>Features</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Below, we share some highlights from Log4j features.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Batteries included</dt>
+<dd>
+<p>Log4j bundles a rich set of components to assist various use cases.</p>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="manual/appenders.html" class="xref page">Appenders</a> targeting files, network sockets, databases, SMTP servers, etc.</p>
+</li>
+<li>
+<p><a href="manual/layouts.html" class="xref page">Layouts</a> that can render CSV, HTML, JSON, Syslog, etc. formatted outputs</p>
+</li>
+<li>
+<p><a href="manual/filters.html" class="xref page">Filters</a> based on log event rates, regular expressions, scripts, time, etc.</p>
+</li>
+<li>
+<p><a href="manual/lookups.html" class="xref page">Lookups</a> for accessing system properties, environment variables, log event fields, etc.</p>
+</li>
+</ul>
+</div>
+</dd>
+<dt class="hdlist1">Reliability</dt>
+<dd>
+<p>Log4j is built with solid reliability in mind.
+It can automatically reload its configuration upon modification and will do so without losing log events while reconfiguration occurs.</p>
+</dd>
+<dt class="hdlist1">Performance</dt>
+<dd>
+<p>When configured correctly, Log4j can deliver excelling performance without almost any burden on the Java garbage collector, and it will do so without sacrificing reliability.
+Check out the <a href="manual/performance.html" class="xref page">Performance</a> page for details.</p>
+</dd>
+<dt class="hdlist1">Extensibility</dt>
+<dd>
+<p>Log4j contains a fully-fledged <a href="manual/plugins.html" class="xref page">plugin support</a> that users can leverage to extend functionality.
+You can easily add your components (layouts, appenders, filters, etc.) or customize existing ones (e.g., adding new directives to <a href="manual/pattern-layout.html#extending" class="xref page">Pattern Layout</a> or <a href="manual/json-template-layout.html#extending" class="xref page">JSON Template Layout</a>).
+Check out the <a href="manual/extending.html" class="xref page">Extending Log4j</a> page.</p>
+</dd>
+<dt class="hdlist1">Powerful API</dt>
+<dd>
+<p>Log4j is a logging system where the API (called Log4j API) and its implementation (called Log4j Core) is distinctly separate from each other.
+<a href="manual/api.html" class="xref page">Log4j API</a> provides the most feature-rich logging facade in the market; support for various <code>Message</code> types (such as <code>Object</code> or <code>Map</code>) besides plain <code>String</code>, lambda expressions, parameterized logging, markers, levels, diagnostic contexts (aka. MDC/NDC), etc.
+Log4j team takes backward compatibility very seriously and makes sure people relying on Log4j API gets a logging facade that is straightforward to use in a correct and future-proof way.
+Check out the <a href="manual/api.html" class="xref page">Java API</a>,
+<a href="https://logging.apache.org/log4j/kotlin/index.html">Kotlin API</a>
+and
+<a href="https://logging.apache.org/log4j/scala/index.html">Scala API</a>
+pages for further information.</p>
+</dd>
+<dt class="hdlist1">No vendor lock-in</dt>
+<dd>
+<p>Log4j API is a generic logging facade for various logging frameworks.
+While Log4j Core implements it at its fullest, you can easily switch to other implementations such as Logback or JUL (<code>java.util.logging</code>).</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</article>
+  </div>
+</main>
+</div>
+<footer class="footer">
+  <p>
+    Copyright © 1999-2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+    Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+    Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+  </p>
+  <p>
+    Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+    Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+    Other names may be trademarks of their respective owners.
+  </p>
+</footer>
+<!-- Matomo -->
+<script>
+  var _paq = window._paq = window._paq || [];
+  _paq.push(["disableCookies"]);
+  _paq.push(['trackPageView']);
+  _paq.push(['enableLinkTracking']);
+  (function() {
+    var u="https://analytics.apache.org/";
+    _paq.push(['setTrackerUrl', u+'matomo.php']);
+    _paq.push(['setSiteId', '42']);
+    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+  })();
+</script>
+<noscript><p><img src="https://analytics.apache.org/matomo.php?idsite=42&amp;rec=1" style="border:0;" alt="" /></p></noscript>
+<!-- End Matomo Code -->
+<script id="site-script" src="./_/js/site.js" data-ui-root-path="./_"></script>
+<script async src="./_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="./_/js/vendor/tabs.js"></script>
+  </body>
+</html>
diff --git a/jakarta.html b/jakarta.html
new file mode 100644
index 0000000000..3726b6e185
--- /dev/null
+++ b/jakarta.html
@@ -0,0 +1,1741 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>Integrating with Jakarta EE :: Apache Log4j</title>
+    <link rel="canonical" href="https://logging.apache.org/log4j/2.x/jakarta.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">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="./_/css/vendor/tabs.css">
+<style>
+  /* Swap colors of `IMPORTANT` and `WARNING` blocks */ 
+  .doc .admonitionblock.important .icon { background-color: #f70; }
+  .doc .admonitionblock.warning .icon { background-color: #e40046; }
+  /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+  .doc h1 { font-size: 1.9rem; }
+  .doc h2 { font-size: 1.7rem; }
+  .doc h3 { font-size: 1.5rem; font-weight: 400; }
+  .doc h4 { font-size: 1.3rem; font-weight: 500; }
+  .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+  .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+  /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+  .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+  .doc pre { font-size: 0.7rem; }
+  .doc .colist { font-size: 0.75rem; }
+  /* Make links more visible: */
+  .doc a { text-decoration: underline; }
+  .doc a code { text-decoration: underline; color: #1565c0; }
+  /* Tab header fonts aren't rendered good, adjusting the font weight: */
+  .tablist > ul li { font-weight: 500; }
+  /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+  .toc .toc-menu li[data-level="4"] a {
+    padding-left: 2.75rem;
+  }
+  /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+  .hljs-string {
+    color: #0f8532;
+  }
+</style>
+  </head>
+  <body class="article">
+<header class="header">
+  <nav class="navbar">
+    <div class="navbar-brand">
+      <div class="navbar-item">
+        <img src="./_/../_images/logo-small-white.png" alt="Apache Log4j"/>
+      </div>
+    </div>
+    <div id="topbar-nav" class="navbar-menu">
+      <div class="navbar-end">
+        <a class="navbar-item" href="https://logging.apache.org">a subproject of&nbsp;<strong>Apache Logging Services</strong></a>
+      </div>
+    </div>
+  </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+  <aside class="nav">
+    <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+  <nav class="nav-menu">
+    <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+    <h3 class="title"><a href="index.html">Home</a></h3>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="download.html">Download</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="release-notes.html">Release Notes</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/index.html">Manual</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/getting-started.html">Getting started</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="manual/installation.html">Installation</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html">API</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#loggers">Loggers</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/eventlogging.html">Event Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/simple-logger.html">Simple Logger</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/status-logger.html">Status Logger</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/logbuilder.html">Fluent API</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/api.html#fish-tagging">Fish tagging</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customloglevels.html">Levels</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/markers.html">Markers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/thread-context.html">Thread Context</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/messages.html">Messages</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/flowtracing.html">Flow Tracing</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/implementation.html">Implementation</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="manual/architecture.html">Architecture</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/config-intro.html">Configuration</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/configuration.html">Configuration file</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/systemproperties.html">Configuration properties</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/customconfig.html">Programmatic configuration</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/appenders.html">Appenders</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/file.html">File appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/rolling-file.html">Rolling file appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/database.html">Database appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/network.html">Network Appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/message-queue.html">Message queue appenders</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/appenders/delegating.html">Delegating Appenders</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/layouts.html">Layouts</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/json-template-layout.html">JSON Template Layout</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" href="manual/pattern-layout.html">Pattern Layout</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/lookups.html">Lookups</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/filters.html">Filters</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/scripts.html">Scripts</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/jmx.html">JMX</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/extending.html">Extending</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/plugins.html">Plugins</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="manual/performance.html">Performance</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/async.html">Asynchronous loggers</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="manual/garbagefree.html">Garbage-free logging</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">References</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="plugin-reference.html">Plugin reference</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="javadoc.html">Java API reference</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Resources</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="faq.html">F.A.Q.</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="migrate-from-log4j1.html">Migrating from Log4j 1</a>
+  </li>
+  <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" 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="hibernate.html">Integrating with Hibernate</a>
+  </li>
+  <li class="nav-item is-current-page" data-depth="1">
+    <a class="nav-link" href="jakarta.html">Integrating with Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="soa.html">Integrating with service-oriented architectures</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="development.html">Development</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="components.html">Components</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-iostreams.html">Log4j IOStreams</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-boot.html">Log4j Spring Boot Support</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j Spring Cloud Configuration</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="log4j-to-jul.html">Log4j-to-JUL bridge</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="0">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Related projects</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jakarta/index.html">Log4j Jakarta EE</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/jmx-gui/index.html">Log4j JMX GUI</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/kotlin/index.html">Log4j Kotlin</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/scala/index.html">Log4j Scala</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/tools/index.html">Log4j Tools</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="https://logging.apache.org/log4j/transform/index.html">Log4j Transformation Tools</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </nav>
+</div>
+    </div>
+  </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+  <a href="index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+  <ul>
+    <li><a href="index.html">Home</a></li>
+    <li>Resources</li>
+    <li><a href="jakarta.html">Integrating with Jakarta EE</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/jakarta.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">Integrating with Jakarta EE</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>In a Jakarta EE environment, there are two possible approaches to logging:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Each application can use their own copy of Log4j Core and include <code>log4j-core</code> in the WAR or EAR archive.</p>
+</li>
+<li>
+<p>Applications can also use a single copy of Log4j Core that must be installed globally on the application server.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>While the first approach is the easiest to implement, it has some limitations:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Shared libraries</dt>
+<dd>
+<p>Log events emitted by each application and the libraries bundled with it will be handled by Log4j Core,
+but events related to the application emitted by a <strong>shared</strong> library (e.g. JPA implementation) will be handled by the application server.
+To diagnose a problem with the application, you might need to look into multiple log files.</p>
+</dd>
+<dt class="hdlist1">Separate log files</dt>
+<dd>
+<p>Each application must use a <strong>different</strong> log file to prevent problems with concurrent access to the same file by multiple applications.
+Problems may arise, especially if a <a href="manual/appenders/rolling-file.html" class="xref page">rolling file appender</a> is used.</p>
+</dd>
+<dt class="hdlist1">Lifecycle</dt>
+<dd>
+<p>Web applications have a different lifecycle from the application server.
+Additional care is required to stop Log4j Core when the application is stopped.
+See <a href="#log4j-jakarta-web">Integrating with web applications</a> for more details.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>The second approach requires changes to the configuration of the application server,
+but produces better results in terms of separating log events of different applications.
+See <a href="#sharing">Sharing Log4j Core between Web Applications</a> for more details.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-jakarta-web"><a class="anchor" href="#log4j-jakarta-web"></a>Integrating with web applications</h2>
+<div class="sectionbody">
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>To avoid problems,
+some Log4j API and Log4j Core features are automatically disabled when running in a Jakarta EE environment.
+Most notably:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>the usage of <code>ThreadLocal</code> for object pooling is disabled.</p>
+</li>
+<li>
+<p>a web-safe implementation of
+<a href="javadoc/log4j-api/org/apache/logging/log4j/spi/ThreadContextMap.html"><code>ThreadContextMap</code></a> is used.</p>
+</li>
+<li>
+<p>JMX notifications are sent synchronously.</p>
+</li>
+<li>
+<p>the JVM shutdown hook is disabled.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>See <a href="manual/systemproperties.html#log4j2.isWebapp" class="xref page"><code>log4j2.isWebapp</code></a> for more details.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Using a logging implementation like <strong>Log4j Core</strong> in a Jakarta EE application requires particular care.
+Since the lifecycle of a container or web application is independent of the lifecycle of the JVM, it&#8217;s important for logging resources to be properly cleaned up (database connections closed, files closed, etc.) when the container or web application shuts down.</p>
+</div>
+<div class="paragraph">
+<p>To properly synchronize the lifecycles of Log4j Core and Jakarta EE applications,
+an additional <strong>Log4j Web</strong> artifact is provided.</p>
+</div>
+<div class="sect2">
+<h3 id="log4j-jakarta-web-installation"><a class="anchor" href="#log4j-jakarta-web-installation"></a>Installation</h3>
+<div class="paragraph">
+<p>To install Log4j Web in your web application, you need to add it as a runtime dependency:</p>
+</div>
+<div id="_tabs_1" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_1_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_1_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_1_maven--panel" class="tabpanel" aria-labelledby="_tabs_1_maven">
+<div class="paragraph">
+<p>We assume you use <a href="components.html#log4j-bom" class="xref page"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-jakarta-web&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_1_gradle--panel" class="tabpanel" aria-labelledby="_tabs_1_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="components.html#log4j-bom" class="xref page"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-jakarta-web'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<details>
+<summary class="title">Click here if you are you using Jakarta EE 8 or any version of Java EE?</summary>
+<div class="content">
+<div class="paragraph">
+<p>Jakarta EE 8 and all Java EE applications servers use the legacy <code>javax</code> package prefix instead of <code>jakarta</code>.
+If you are using those application servers, you should replace the dependencies above with:</p>
+</div>
+<div id="_tabs_2" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_2_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_2_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_2_maven--panel" class="tabpanel" aria-labelledby="_tabs_2_maven">
+<div class="paragraph">
+<p>We assume you use <a href="components.html#log4j-bom" class="xref page"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-web&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_2_gradle--panel" class="tabpanel" aria-labelledby="_tabs_2_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="components.html#log4j-bom" class="xref page"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-web'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</details>
+<div class="paragraph">
+<p>If you are writing a Servlet 3.0 or later application, Apache Log4j Web will register a
+<a href="https://jakarta.ee/specifications/servlet/5.0/apidocs/jakarta/servlet/servletcontainerinitializer"><code>ServletContainerInitializer</code></a>
+that takes care of configuring the Log4j lifecycle for you. Under the hood this will:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>initialize Log4j Core with the correct configuration file.</p>
+</li>
+<li>
+<p>register a <code>Log4jServletContextListener</code> to automatically shut down Log4j Core, when the application shuts down.</p>
+</li>
+<li>
+<p>register a <code>Log4jServletFilter</code> to enable the <a href="manual/lookups.html#WebLookup" class="xref page">web lookup</a>.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>See also <a href="#web-application-specific">Application server specific notes</a>.</p>
+</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>While the Servlet Specification allows web fragments to automatically add context listeners, it does not give any guarantees regarding the order in which those listeners are executed
+(see <a href="https://jakarta.ee/specifications/servlet/5.0/jakarta-servlet-spec-5.0#Assembling_the_descriptor">Section 8.2.3</a>).</p>
+</div>
+<div class="paragraph">
+<p>If other context listeners in your application use logging, you need to make sure that <code>Log4jServletContextListener</code> is the last listener to be executed at shutdown.
+To do it, you must create a <code>web.xml</code> descriptor and add the <code>Log4jServletContextListener</code> explicitly as the <strong>first</strong> context listener:</p>
+</div>
+<div class="listingblock">
+<div class="title">Snippet from an example <a href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examples/manual/webapp/web.xml"><code>web.xml</code></a></div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;listener&gt;
+  &lt;description&gt;Handles Log4j Core lifecycle&lt;/description&gt;
+  &lt;listener-class&gt;
+    org.apache.logging.log4j.web.Log4jServletContextListener
+  &lt;/listener-class&gt;
+&lt;/listener&gt;</code></pre>
+</div>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="sect3">
+<h4 id="log4j-jakarta-manual-instalation"><a class="anchor" href="#log4j-jakarta-manual-instalation"></a>Manual installation</h4>
+<div class="paragraph">
+<p>If you are maintaining an older Servlet 2.5 (or earlier) application,
+or if you disabled the <a href="#isLog4jAutoInitializationDisabled">servlet container initializer</a>.</p>
+</div>
+<div class="listingblock">
+<div class="title">Snippet from an example <a href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examples/manual/webapp/web.xml"><code>web.xml</code></a></div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;listener&gt;
+  &lt;description&gt;Handles Log4j Core lifecycle&lt;/description&gt;
+  &lt;listener-class&gt;
+    org.apache.logging.log4j.web.Log4jServletContextListener
+  &lt;/listener-class&gt;
+&lt;/listener&gt;
+&lt;filter&gt;
+  &lt;description&gt;Adds Log4j Core specific attributes to each request&lt;/description&gt;
+  &lt;filter-name&gt;log4jServletFilter&lt;/filter-name&gt;
+  &lt;filter-class&gt;org.apache.logging.log4j.web.Log4jServletFilter&lt;/filter-class&gt;
+&lt;/filter&gt;
+&lt;filter-mapping&gt;
+  &lt;filter-name&gt;log4jServletFilter&lt;/filter-name&gt;
+  &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
+  &lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;
+  &lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;
+  &lt;dispatcher&gt;INCLUDE&lt;/dispatcher&gt;
+  &lt;dispatcher&gt;ERROR&lt;/dispatcher&gt;
+  &lt;!-- Servlet 3.0 with disabled auto-initialization; not supported in 2.5
+  &lt;dispatcher&gt;ASYNC&lt;/dispatcher&gt;
+  --&gt;
+&lt;/filter-mapping&gt;</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="configuration"><a class="anchor" href="#configuration"></a>Configuration</h3>
+<div class="paragraph">
+<p>Log4j Web provides many configuration options to finely tune its installation.
+These configuration options should be specified as
+<a href="https://jakarta.ee/specifications/servlet/5.0/jakarta-servlet-spec-5.0#initialization-parameters">servlet context initialization parameters</a>.</p>
+</div>
+<div class="sect3">
+<h4 id="isLog4jAutoInitializationDisabled"><a class="anchor" href="#isLog4jAutoInitializationDisabled"></a><code>isLog4jAutoInitializationDisabled</code></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Type</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>boolean</code></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Default value</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>If set to <code>true</code>, the <code>Log4jServletContainerInitializer</code> will be disabled, which prevents the automatic registration of both the <code>Log4jServletContextListener</code> and <code>Log4jServletFilter</code>.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="isLog4jAutoShutdownDisabled"><a class="anchor" href="#isLog4jAutoShutdownDisabled"></a><code>isLog4jAutoShutdownDisabled</code></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Type</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>boolean</code></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Default value</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>If set to <code>true</code>, the <code>Log4jServletContextListener</code> will not register a <code>Log4jServletContextListener</code> to handle the web application shut down.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="log4j.stop.timeout.timeunit"><a class="anchor" href="#log4j.stop.timeout.timeunit"></a><code>log4j.stop.timeout.timeunit</code></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Type</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html"><code>TimeUnit</code></a></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Default value</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html#SECONDS"><code>SECONDS</code></a></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Specifies the <code>TimeUnit</code> used for the shut-down delay.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="log4j.stop.timeout"><a class="anchor" href="#log4j.stop.timeout"></a><code>log4j.stop.timeout</code></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Type</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>long</code></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Default value</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>30</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>It specifies the duration of the shut-down delay.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="log4jContextName"><a class="anchor" href="#log4jContextName"></a><code>log4jContextName</code></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Type</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Default value</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><em>automatically computed</em></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Used to specify the name of the logger context.</p>
+</div>
+<div class="paragraph">
+<p>If <a href="#jndi-configuration"><code>JndiContextSelector</code></a> is used, this parameter <strong>must</strong> be explicitly provided. Otherwise, the default value is:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>the servlet context name, if present,</p>
+</li>
+<li>
+<p>the servlet context path, including the leading <code>/</code>, otherwise.</p>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect3">
+<h4 id="isLog4jContextSelectorNamed"><a class="anchor" href="#isLog4jContextSelectorNamed"></a><code>isLog4jContextSelectorNamed</code></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Type</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>boolean</code></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Default value</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Must be set to <code>true</code> to use the <a href="#jndi-configuration">JNDI configuration</a>.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="log4jConfiguration"><a class="anchor" href="#log4jConfiguration"></a><code>log4jConfiguration</code></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Type</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html"><code>URI</code></a></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Default value</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The location of a Log4j Core configuration file.
+If the provided value is not an <strong>absolute</strong> URI, Log4j interprets it as:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>the path to an existing
+<a href="https://jakarta.ee/specifications/servlet/5.0/apidocs/jakarta/servlet/servletcontext#getResource(java.lang.String)">servlet context resource</a>,</p>
+</li>
+<li>
+<p>the path to an existing file,</p>
+</li>
+<li>
+<p>the path to a
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html#getResource-java.lang.String-">classpath resource</a>.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>If no value is provided:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Log4j Web looks for a servlet context resource named <code>/WEB-INF/log4j2-&lt;contextName&gt;.&lt;extension&gt;</code>, where <code>&lt;contextName&gt;</code> is the name of the logger context,</p>
+</li>
+<li>
+<p>if no such file exists it looks for a servlet context resource named <code>/WEB-INF/log4j2.&lt;extension&gt;</code>,</p>
+</li>
+<li>
+<p>otherwise, it searches for a configuration file on the classpath using the usual <a href="https://logging.apache.org/log4j/2.x/manual/configuration.html#automatic-configuration">automatic configuration procedure</a>.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="async"><a class="anchor" href="#async"></a>Asynchronous requests and threads</h3>
+<div class="paragraph">
+<p>In order for the
+<a href="manual/lookups.html#WebLookup" class="xref page">web lookup</a>
+to work correctly, Log4j must be able to always identify the <code>ServletContext</code> used by the current thread.
+When standard requests, forwards, inclusions, and error resources are processed,
+the <code>Log4jServletFilter</code> binds the <code>LoggerContext</code> to the thread handling the request,
+and you don&#8217;t have to do anything.</p>
+</div>
+<div class="paragraph">
+<p>The handling of asynchronous requests is however more tricky, since it allows you to execute code on threads that were not prepared by <code>Log4jServletFilter</code>.
+Such a situation occurs, for example, if your code was started using the
+<a href="https://jakarta.ee/specifications/servlet/5.0/apidocs/jakarta/servlet/asynccontext#start(java.lang.Runnable)"><code>AsyncContext.start(Runnable)</code></a>
+method.</p>
+</div>
+<div class="paragraph">
+<p>To successfully propagate the logger context along asynchronous calls, the
+<a href="javadoc/log4j-jakarta-web/org/apache/logging/log4j/web/WebLoggerContextUtils.html"><code>WebLoggerContextUtils</code></a>
+helper class is made available.
+Using this class you can either decorate a <code>Runnable</code> with method calls that bind the appropriate logger context to the thread:</p>
+</div>
+<div class="listingblock">
+<div class="title">Snippet from an example <a href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examples/manual/webapp/AsyncServlet.java"><code>AsyncServlet.java</code></a></div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">AsyncContext asyncContext = req.startAsync();
+asyncContext.start(WebLoggerContextUtils.wrapExecutionContext(getServletContext(), () -&gt; {
+    // Put your logic here
+}));</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>or, if more flexibility is required, you can apply the same logic by using
+<a href="javadoc/log4j-jakarta-web/org/apache/logging/log4j/web/Log4jWebSupport.html"><code>Log4jWebSupport</code></a>:</p>
+</div>
+<div class="listingblock">
+<div class="title">Snippet from an example <a href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examples/manual/webapp/AsyncServlet.java"><code>AsyncServlet.java</code></a></div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">AsyncContext asyncContext = req.startAsync();
+Log4jWebSupport webSupport = WebLoggerContextUtils.getWebLifeCycle(getServletContext());
+asyncContext.start(() -&gt; {
+    try {
+        webSupport.setLoggerContext();
+        // Put your logic here
+    } finally {
+        webSupport.clearLoggerContext();
+    }
+});</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="log4j-taglib"><a class="anchor" href="#log4j-taglib"></a>Logging in JavaServer Pages</h3>
+<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><strong>The Log4j Tag library is planned to be removed in the next major release!</strong>
+If you are using this library, please get in touch with the Log4j maintainers using <a href="https://logging.apache.org/support.html">the official support channels</a>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>To help users add logging statements to JavaServer Pages, Log4j provides a JSP tag library modeled after the
+<a href="https://web.archive.org/web/20140215182415/http://jakarta.apache.org/taglibs/log/">Jakarta Commons Log Tag library</a>.
+To use it, you need to add the following runtime dependency to your web application project:</p>
+</div>
+<div id="_tabs_3" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_3_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_3_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_3_maven--panel" class="tabpanel" aria-labelledby="_tabs_3_maven">
+<div class="paragraph">
+<p>We assume you use <a href="components.html#log4j-bom" class="xref page"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
+  &lt;artifactId&gt;log4j-taglib&lt;/artifactId&gt;
+  &lt;scope&gt;runtime&lt;/scope&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_3_gradle--panel" class="tabpanel" aria-labelledby="_tabs_3_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="components.html#log4j-bom" class="xref page"><code>log4j-bom</code></a> for dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-taglib'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="paragraph">
+<p>and add the following declaration to your JSP pages:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-jsp hljs" data-lang="jsp">&lt;%@ taglib prefix="log4j" uri="http://logging.apache.org/log4j/tld/log" %&gt;</code></pre>
+</div>
+</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 Log4j Taglib component is deprecated and is scheduled for removal in Log4j 3.</p>
+</div>
+<div class="paragraph">
+<p>Currently, it only works with JavaServer Pages 2.3 and previous releases,
+and no version compatible with Jakarta Server Pages 3.0 is available.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The Log4j Taglib library defines a tag for most
+<a href="javadoc/log4j-api/org/apache/logging/log4j/Logger.html"><code>Logger</code></a>
+methods, including:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>simple and parameterized log statements:</p>
+<div class="listingblock">
+<div class="title">Snippet from an example <a href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examples/manual/webapp/taglib.jsp"><code>taglib.jsp</code></a></div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;log4j:debug message="Simple message"/&gt;
+&lt;log4j:info message="Hello {}!" p0="${param.who}"/&gt;
+&lt;log4j:warn message="Message with marker" marker="${requestScope.marker}"/&gt;</code></pre>
+</div>
+</div>
+</li>
+<li>
+<p>flow tracing statements:</p>
+<div class="listingblock">
+<div class="title">Snippet from an example <a href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examples/manual/webapp/taglib.jsp"><code>taglib.jsp</code></a></div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;log4j:entry p0="${param.who}"/&gt;
+&lt;log4j:exit/&gt;</code></pre>
+</div>
+</div>
+</li>
+<li>
+<p>catching and throwing statements:</p>
+<div class="listingblock">
+<div class="title">Snippet from an example <a href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examples/manual/webapp/taglib.jsp"><code>taglib.jsp</code></a></div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;c:catch var="exception"&gt;
+    &lt;%= 5 / 0 %&gt;
+&lt;/c:catch&gt;
+&lt;c:if test="${exception != null}"&gt;
+    &lt;log4j:catching exception="${exception}"/&gt;
+&lt;/c:if&gt;</code></pre>
+</div>
+</div>
+</li>
+<li>
+<p>tags to test the current log level:</p>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;log4j:ifEnabled level="INFO"&gt;
+    &lt;code&gt;INFO&lt;/code&gt; is enabled.
+&lt;/log4j:ifEnabled&gt;</code></pre>
+</div>
+</div>
+</li>
+<li>
+<p>tags to set the name of the logger used:</p>
+<div class="listingblock">
+<div class="title">Snippet from an example <a href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examples/manual/webapp/taglib.jsp"><code>taglib.jsp</code></a></div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;log4j:setLogger logger="example.jsp"/&gt;</code></pre>
+</div>
+</div>
+</li>
+<li>
+<p>a <code>dump</code> tag that prints the contents of a JSP scope:</p>
+<div class="listingblock">
+<div class="title">Snippet from an example <a href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examples/manual/webapp/taglib.jsp"><code>taglib.jsp</code></a></div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;log4j:dump scope="request"/&gt;</code></pre>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="web-application-specific"><a class="anchor" href="#web-application-specific"></a>Application server specific notes</h3>
+<div id="web-application-wildfly" class="dlist">
+<dl>
+<dt class="hdlist1">WildFly</dt>
+<dd>
+<div class="paragraph">
+<p>WildFly implicitly adds a shared copy of <code>log4j-api</code> to each web application deployment.
+This copy of <code>log4j-api</code> is configured to forward all events to WildFly&#8217;s centralized logging system and does <strong>not</strong> use the copy of Log4j Core bundled with the web application.</p>
+</div>
+<div class="paragraph">
+<p>To use Log4j Core, you need to set the <code>add-logging-api-dependencies</code> attribute of the logging subsystem to <code>false</code>.
+See <a href="https://docs.wildfly.org/32/Admin_Guide.html#logging-attributes">WildFly documentation</a> for more details.</p>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="sharing"><a class="anchor" href="#sharing"></a>Sharing Log4j Core between Web Applications</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Since Log4j Core supports multiple <a href="manual/architecture.html#LoggerContext" class="xref page">logger contexts</a>, it is possible to share a single instance of Log4j Core
+without losing the ability to configure logging for each application separately.</p>
+</div>
+<div class="paragraph">
+<p>Sharing Log4j Core has two main advantages:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>You can send log statements from multiple applications to the same log file.
+Under the hood, Log4j Core will use a single
+<a href="manual/architecture.html#AbstractManager" class="xref page">manager</a>
+per file, which will serialize concurrent access from multiple applications.</p>
+</li>
+<li>
+<p>You can capture log statements issued by other shared libraries, so you don&#8217;t have to look for them in the global application server log.</p>
+</li>
+</ul>
+</div>
+<div class="sect2">
+<h3 id="sharing-setup"><a class="anchor" href="#sharing-setup"></a>Setup</h3>
+<div class="paragraph">
+<p>To share Log4j Core between applications, you need to share at least these two JAR files:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="https://central.sonatype.com/artifact/org.apache.logging.log4j/log4j-api/${log4j-api.version}"><code>log4j-api</code></a></p>
+</li>
+<li>
+<p><a href="https://central.sonatype.com/artifact/org.apache.logging.log4j/log4j-core/2.24.1"><code>log4j-core</code></a></p>
+</li>
+<li>
+<p><a href="https://central.sonatype.com/artifact/org.apache.logging.log4j/log4j-jakarta-web/2.24.1"><code>log4j-jakarta-web</code></a>
+(or
+<a href="https://central.sonatype.com/artifact/org.apache.logging.log4j/log4j-web/2.24.1"><code>log4j-web</code></a>
+if you use a Java EE application server)</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Since sharing libraries between applications is not part of the Jakarta EE standard, the instructions are specific to each application server:</p>
+</div>
+<div id="_tabs_4" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_4_glassfish" class="tab">
+<p>GlassFish</p>
+</li>
+<li id="_tabs_4_jetty" class="tab">
+<p>Jetty</p>
+</li>
+<li id="_tabs_4_openliberty" class="tab">
+<p>OpenLiberty</p>
+</li>
+<li id="_tabs_4_payara" class="tab">
+<p>Payara</p>
+</li>
+<li id="_tabs_4_tomcat" class="tab">
+<p>Tomcat</p>
+</li>
+<li id="_tabs_4_wildfly" class="tab">
+<p>WildFly</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_4_glassfish--panel" class="tabpanel" aria-labelledby="_tabs_4_glassfish">
+<div class="paragraph">
+<p>In GlassFish, you can add those libraries to the <em>common classloader</em>.
+See <a href="https://glassfish.org/docs/latest/application-development-guide.html#circumventing-class-loader-isolation">GlassFish documentation</a> for more details.</p>
+</div>
+</div>
+<div id="_tabs_4_jetty--panel" class="tabpanel" aria-labelledby="_tabs_4_jetty">
+<div class="paragraph">
+<p>Recent versions of Jetty have a <code>logging-log4j2</code> module that can be easily enabled to share Log4j Core between applications and to use Log4j Core for the Jetty server itself.
+See <a href="https://jetty.org/docs/jetty/12/operations-guide/modules/index.html">Jetty Modules documentation</a> for more details.</p>
+</div>
+</div>
+<div id="_tabs_4_openliberty--panel" class="tabpanel" aria-labelledby="_tabs_4_openliberty">
+<div class="paragraph">
+<p>In OpenLiberty, you can add Log4j as a <em>global library</em>.
+See <a href="https://openliberty.io/docs/latest/class-loader-library-config.html#_configure_global_libraries">OpenLiberty documentation</a> for more details.</p>
+</div>
+</div>
+<div id="_tabs_4_payara--panel" class="tabpanel" aria-labelledby="_tabs_4_payara">
+<div class="paragraph">
+<p>See <a href="https://docs.payara.fish/community/docs/Technical%20Documentation/Payara%20Server%20Documentation/Server%20Configuration%20And%20Management/Classloading/Standard%20Classloading.html#common-libraries">Payara Common Libraries documentation</a>.</p>
+</div>
+</div>
+<div id="_tabs_4_tomcat--panel" class="tabpanel" aria-labelledby="_tabs_4_tomcat">
+<div class="paragraph">
+<p>In Tomcat, you can use the <em>common classloader</em>.
+See <a href="https://tomcat.apache.org/tomcat-11.0-doc/class-loader-howto.html">Tomcat classloader documentation</a> for more details.</p>
+</div>
+</div>
+<div id="_tabs_4_wildfly--panel" class="tabpanel" aria-labelledby="_tabs_4_wildfly">
+<div class="paragraph">
+<p>You can install Log4j as a <em>global module</em> or in a <em>global directory</em>.
+See <a href="https://docs.wildfly.org/32/Admin_Guide.html#EE_Application_Deployment_Configuration">WildFly EE Application Deployment documentation</a> for more details.</p>
+</div>
+<div class="paragraph">
+<p>Check also the <a href="#web-application-wildfly">WildFly note above</a>.</p>
+</div>
+</div>
+</div>
+</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>Web application classloaders (see
+<a href="https://jakarta.ee/specifications/servlet/6.0/jakarta-servlet-spec-6.0#web-application-class-loader">Servlet Specification 10.7.2</a>
+) use a <em>"parent last"</em> delegation strategy, but prevent application from overriding implementation classes provided by the container.</p>
+</div>
+<div class="paragraph">
+<p>If you share Log4j between applications and the applications themselves contain Log4j Core, the logging behavior depends on the application server.
+Some application servers will use the shared instance (e.g., WildFly), while others will use the application instance (e.g., Tomcat).
+There are two solutions to this problem:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>you can remove Log4j from the WAR or EAR archive:</p>
+<div id="_tabs_5" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_5_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_5_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_5_maven--panel" class="tabpanel" aria-labelledby="_tabs_5_maven">
+<div class="paragraph">
+<p>You can declare the
+<a href="https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope">scope</a>
+of all Log4j libraries as <code>provided</code>.</p>
+</div>
+</div>
+<div id="_tabs_5_gradle--panel" class="tabpanel" aria-labelledby="_tabs_5_gradle">
+<div class="paragraph">
+<p>You can add <code>log4j-api</code> to the <code>providedCompile</code> configuration, while <code>log4j-core</code> to the <code>providedRuntime</code> configuration.
+See the <a href="https://docs.gradle.org/current/userguide/war_plugin.html#sec:war_dependency_management">Gradle WAR plugin</a> for more details.</p>
+</div>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>you can use an application-server-specific configuration option to delegate the loading of Log4j API to the parent classloader.</p>
+</li>
+</ul>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="log-separation"><a class="anchor" href="#log-separation"></a>Log separation</h3>
+<div class="paragraph">
+<p>When using a shared instance of Log4j Core,
+you might be interested in identifying the application associated with a given log event.
+Log4j Core provides a mechanism to split all
+<a href="javadoc/log4j-api/org/apache/logging/log4j/Logger.html"><code>Logger</code></a>
+instances into logging domains called
+<a href="manual/architecture.html#LoggerContext" class="xref page"><code>LoggerContext</code></a>s.
+You have therefore two ways to separate log events:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>You can create a separate logger context for each web application and one context for the common libraries.
+See <a href="#multiple-contexts">Multiple logger contexts</a> for more details.</p>
+</li>
+<li>
+<p>You can also use a <strong>single</strong> logger context for all log events, but use
+<a href="manual/lookups.html" class="xref page">lookups</a> to add context data to your log events.
+See <a href="#single-context">Single logger context</a> for more details.</p>
+</li>
+</ol>
+</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 two approaches deliver similar results for log events generated by the web applications themselves or the libraries
+bundled in the WAR or EAR archive.</p>
+</div>
+<div class="paragraph">
+<p>Differences between these approaches appear in the handling of <strong>shared</strong> libraries.
+There are two kinds of shared libraries:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Shared libraries that use <strong>static</strong> <code>Logger</code> fields.
+These libraries will always use the same logger context, which will not be one of the per-application contexts.</p>
+<div class="paragraph">
+<p>This kind includes all the shared libraries, which were not written with Jakarta EE in mind.</p>
+</div>
+</li>
+<li>
+<p>Shared libraries that use <strong>instance</strong> <code>Logger</code> fields.
+These libraries will use the logger context associated with the web application that uses them.</p>
+<div class="paragraph">
+<p>Application server implementations usually use instance <code>Logger</code> fields.</p>
+</div>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>Since the first kind of libraries is more common,
+counterintuitively the <a href="#single-context">Single logger context</a> approach will usually give better results than the <a href="#multiple-contexts">Multiple logger contexts</a> approach.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="sect3">
+<h4 id="single-context"><a class="anchor" href="#single-context"></a>Single logger context</h4>
+<div class="paragraph">
+<p>By default, Log4j Core creates a separate logger context per classloader.
+To use a single logger context, you need to set the
+<a href="manual/systemproperties.html#log4j2.contextSelector" class="xref page"><code>log4j2.contextSelector</code></a>
+system property to:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>either
+<a href="javadoc/log4j-core/org/apache/logging/log4j/core/selector/BasicContextSelector.html"><code>org.apache.logging.log4j.core.selector.BasicContextSelector</code></a>
+to use synchronous loggers,</p>
+</li>
+<li>
+<p>or
+<a href="javadoc/log4j-core/org/apache/logging/log4j/core/async/BasicAsyncLoggerContextSelector.html"><code>org.apache.logging.log4j.core.async.BasicAsyncLoggerContextSelector</code></a>
+to use asynchronous loggers.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>In this approach, you must use <a href="manual/lookups.html" class="xref page">lookups</a> to register the application that generated a log event.
+The most useful lookups in this case are:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Web lookup</dt>
+<dd>
+<p>It does not require any setup, but it is available only after <code>Log4jServletFilter</code> has been executed.
+Some log events pertinent to a web application can be unmarked.
+See <a href="manual/lookups.html#WebLookup" class="xref page">web lookup</a> for more information.</p>
+</dd>
+<dt class="hdlist1">JNDI lookup</dt>
+<dd>
+<p>It covers a larger part of the handling of a request, but it requires additional setup to export the name of the application via JNDI.
+See <a href="manual/lookups.html#JndiLookup" class="xref page">JNDI lookup</a> for more information.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>When using a single logger context, you choose between:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Logging all events to a single appender.
+We strongly recommend using a structured layout (e.g., <a href="manual/json-template-layout.html" class="xref page">JSON Template Layout</a>) with an additional field capturing the Servlet context name.
+This would allow separation of application logs by filtering on the context name.
+The following example demonstrates this scheme using a Socket Appender writing to Elasticsearch:</p>
+<div id="_tabs_6" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_6_xml" class="tab">
+<p>XML</p>
+</li>
+<li id="_tabs_6_json" class="tab">
+<p>JSON</p>
+</li>
+<li id="_tabs_6_yaml" class="tab">
+<p>YAML</p>
+</li>
+<li id="_tabs_6_properties" class="tab">
+<p>Properties</p>
+</li>
+</ul>
... 609848 lines suppressed ...