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

vy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-site.git


The following commit(s) were added to refs/heads/main by this push:
     new 0bf2cd44 Re-generate `log4j-config-2.23.1.xsd` with plugin subclass 
fix (apache/logging-log4j-tools#117)
0bf2cd44 is described below

commit 0bf2cd44f9850709413f8403f0c0084b297d62f8
Author: Volkan Yazıcı <vol...@yazi.ci>
AuthorDate: Tue May 7 21:21:55 2024 +0200

    Re-generate `log4j-config-2.23.1.xsd` with plugin subclass fix 
(apache/logging-log4j-tools#117)
---
 xml/ns/log4j-config-2.23.1.xsd | 64 ++++++++++++++++++++++--------------------
 1 file changed, 33 insertions(+), 31 deletions(-)

diff --git a/xml/ns/log4j-config-2.23.1.xsd b/xml/ns/log4j-config-2.23.1.xsd
index 2f5ca312..1262a252 100644
--- a/xml/ns/log4j-config-2.23.1.xsd
+++ b/xml/ns/log4j-config-2.23.1.xsd
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><schema 
xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:log4j="https://logging.apache.org/xml/ns"; elementFormDefault="qualified" 
targetNamespace="https://logging.apache.org/xml/ns"; version="2.23.1"><element 
type="log4j:org.apache.logging.log4j.core.config.Configuration" 
name="Configuration"/><simpleType 
name="com.conversantmedia.util.concurrent.SpinPolicy"><restriction 
base="string"><enumeration value="WAITING"></enumeration><enumeration 
value="BLOCKI [...]
+<?xml version="1.0" encoding="UTF-8"?><schema 
xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:log4j="https://logging.apache.org/xml/ns"; elementFormDefault="qualified" 
targetNamespace="https://logging.apache.org/xml/ns"; 
version="2.24.0-SNAPSHOT"><element 
type="log4j:org.apache.logging.log4j.core.config.Configuration" 
name="Configuration"/><simpleType 
name="com.conversantmedia.util.concurrent.SpinPolicy"><restriction 
base="string"><enumeration value="WAITING"></enumeration><enumeration valu [...]
 NOTE: The Log4j API supports custom levels, the following list contains only 
the standard ones.</documentation></annotation><restriction 
base="string"><enumeration value="OFF"><annotation><documentation>Special level 
that disables logging.
 No events should be logged at this 
level.</documentation></annotation></enumeration><enumeration 
value="FATAL"><annotation><documentation>A fatal event that will prevent the 
application from 
continuing</documentation></annotation></enumeration><enumeration 
value="ERROR"><annotation><documentation>An error in the application, possibly 
recoverable</documentation></annotation></enumeration><enumeration 
value="WARN"><annotation><documentation>An event that might possible lead to an 
error</do [...]
 
@@ -6,7 +6,7 @@ Addresses without a port (or port set to 0) will use the 
default Cassandra port
 
 Can be used with or without batch 
statements.</documentation></annotation></attribute><attribute 
name="clusterName" type="string"></attribute><attribute name="ignoreExceptions" 
type="boolean"></attribute><attribute name="keyspace" 
type="string"></attribute><attribute name="name" 
type="string"></attribute><attribute name="password" 
type="string"></attribute><attribute name="table" 
type="string"></attribute><attribute name="useClockForTimestampGenerator" 
type="boolean"><annotation><documen [...]
 
-Wraps a 
apiref:org.apache.logging.log4j.core.LifeCycle.State[].</documentation></annotation><choice><element
 name="Cassandra" 
type="log4j:org.apache.logging.log4j.cassandra.CassandraAppender"/><element 
name="Async" 
type="log4j:org.apache.logging.log4j.core.appender.AsyncAppender"/><element 
name="Console" 
type="log4j:org.apache.logging.log4j.core.appender.ConsoleAppender"/><element 
name="CountingNoOp" 
type="log4j:org.apache.logging.log4j.core.appender.CountingNoOpAppender"/><element
 name= [...]
+Wraps a 
apiref:org.apache.logging.log4j.core.LifeCycle.State[].</documentation></annotation><choice><element
 name="Cassandra" 
type="log4j:org.apache.logging.log4j.cassandra.CassandraAppender"/><element 
name="Async" 
type="log4j:org.apache.logging.log4j.core.appender.AsyncAppender"/><element 
name="Console" 
type="log4j:org.apache.logging.log4j.core.appender.ConsoleAppender"/><element 
name="CountingNoOp" 
type="log4j:org.apache.logging.log4j.core.appender.CountingNoOpAppender"/><element
 name= [...]
 
 An Appender can contain a apiref:org.apache.logging.log4j.core.Layout[] if 
applicable as well as an apiref:org.apache.logging.log4j.core.ErrorHandler[]. 
Typical Appender implementations coordinate with an implementation of 
apiref:org.apache.logging.log4j.core.appender.AbstractManager[] to handle 
external resources such as streams, connections, and other shared state.
 As Appenders are plugins, concrete implementations need to be annotated with 
apiref:org.apache.logging.log4j.core.config.plugins.Plugin[] and need to 
provide a static factory method annotated with 
apiref:org.apache.logging.log4j.core.config.plugins.PluginFactory[].
@@ -15,12 +15,12 @@ Most core plugins are written using a related Manager class 
that handle the actu
 For instance, many Appenders can take advantage of the 
apiref:org.apache.logging.log4j.core.appender.OutputStreamManager[] class.
 
 It is recommended that Appenders don't do any heavy lifting since there can be 
many instances of the class being used at any given time.
-When resources require locking (e.g., through 
apiref:org.apache.logging.log4j.core.java.nio.channels.FileLock[]), it is 
important to isolate synchronized code to prevent concurrency 
issues.</documentation></annotation><choice><element name="Cassandra" 
type="log4j:org.apache.logging.log4j.cassandra.CassandraAppender"/><element 
name="Async" 
type="log4j:org.apache.logging.log4j.core.appender.AsyncAppender"/><element 
name="Console" type="log4j:org.apache.logging.log4j.core.appender.ConsoleAp 
[...]
+When resources require locking (e.g., through 
apiref:org.apache.logging.log4j.core.java.nio.channels.FileLock[]), it is 
important to isolate synchronized code to prevent concurrency 
issues.</documentation></annotation><choice><element name="Cassandra" 
type="log4j:org.apache.logging.log4j.cassandra.CassandraAppender"/><element 
name="Async" 
type="log4j:org.apache.logging.log4j.core.appender.AsyncAppender"/><element 
name="Console" type="log4j:org.apache.logging.log4j.core.appender.ConsoleAp 
[...]
 
 It is highly recommended that applications make use of the Filters provided 
with this implementation before creating their own.
 
 This interface supports "global" filters (i.e. - all events must pass through 
them first), attached to specific loggers and associated with Appenders.
-It is recommended that, where possible, Filter implementations create a 
generic filtering method that can be called from any of the filter 
methods.</documentation></annotation><choice><element name="BurstFilter" 
type="log4j:org.apache.logging.log4j.core.filter.BurstFilter"/><element 
name="filters" 
type="log4j:org.apache.logging.log4j.core.filter.CompositeFilter"/><element 
name="DenyAllFilter" 
type="log4j:org.apache.logging.log4j.core.filter.DenyAllFilter"/><element 
name="DynamicThreshold [...]
+It is recommended that, where possible, Filter implementations create a 
generic filtering method that can be called from any of the filter 
methods.</documentation></annotation><choice><element name="BurstFilter" 
type="log4j:org.apache.logging.log4j.core.filter.BurstFilter"/><element 
name="filters" 
type="log4j:org.apache.logging.log4j.core.filter.CompositeFilter"/><element 
name="DenyAllFilter" 
type="log4j:org.apache.logging.log4j.core.filter.DenyAllFilter"/><element 
name="DynamicThreshold [...]
 
 The formats are:
 
@@ -35,13 +35,13 @@ In Log4j, the main interface for handling the life cycle 
context of an object is
 An object first starts in the 
apiref:org.apache.logging.log4j.core.State#INITIALIZED[] state by default to 
indicate the class has been loaded.
 From here, calling the 
apiref:org.apache.logging.log4j.core.LifeCycle#start()[] method will change 
this state to apiref:org.apache.logging.log4j.core.State#STARTING[]. After 
successfully being started, this state is changed to 
apiref:org.apache.logging.log4j.core.State#STARTED[]. When the 
apiref:org.apache.logging.log4j.core.LifeCycle#stop()[] is called, this goes 
into the apiref:org.apache.logging.log4j.core.State#STOPPING[] state.
 After successfully being stopped, this goes into the 
apiref:org.apache.logging.log4j.core.State#STOPPED[] state.
-In most circumstances, implementation classes should store their 
apiref:org.apache.logging.log4j.core.State[] in a `volatile` field or inside an 
apiref:org.apache.logging.log4j.core.java.util.concurrent.atomic.AtomicReference[]
 dependent on synchronization and concurrency 
requirements.</documentation></annotation><choice><element name="Cassandra" 
type="log4j:org.apache.logging.log4j.cassandra.CassandraAppender"/><element 
name="Async" type="log4j:org.apache.logging.log4j.core.appender.Asy [...]
+In most circumstances, implementation classes should store their 
apiref:org.apache.logging.log4j.core.State[] in a `volatile` field or inside an 
apiref:org.apache.logging.log4j.core.java.util.concurrent.atomic.AtomicReference[]
 dependent on synchronization and concurrency 
requirements.</documentation></annotation><choice><element name="Cassandra" 
type="log4j:org.apache.logging.log4j.cassandra.CassandraAppender"/><element 
name="Async" type="log4j:org.apache.logging.log4j.core.appender.Asy [...]
 
-This interface should be merged with the super-interface in 
3.0.</documentation></annotation><choice><element name="Cassandra" 
type="log4j:org.apache.logging.log4j.cassandra.CassandraAppender"/><element 
name="Async" 
type="log4j:org.apache.logging.log4j.core.appender.AsyncAppender"/><element 
name="Console" 
type="log4j:org.apache.logging.log4j.core.appender.ConsoleAppender"/><element 
name="CountingNoOp" 
type="log4j:org.apache.logging.log4j.core.appender.CountingNoOpAppender"/><element
 name [...]
+This interface should be merged with the super-interface in 
3.0.</documentation></annotation><choice><element name="Cassandra" 
type="log4j:org.apache.logging.log4j.cassandra.CassandraAppender"/><element 
name="Async" 
type="log4j:org.apache.logging.log4j.core.appender.AsyncAppender"/><element 
name="Console" 
type="log4j:org.apache.logging.log4j.core.appender.ConsoleAppender"/><element 
name="CountingNoOp" 
type="log4j:org.apache.logging.log4j.core.appender.CountingNoOpAppender"/><element
 name [...]
 
-Although Appenders do not have to extend this class, doing so will simplify 
their implementation.</documentation></annotation><choice><element 
name="Cassandra" 
type="log4j:org.apache.logging.log4j.cassandra.CassandraAppender"/><element 
name="Async" 
type="log4j:org.apache.logging.log4j.core.appender.AsyncAppender"/><element 
name="Console" 
type="log4j:org.apache.logging.log4j.core.appender.ConsoleAppender"/><element 
name="CountingNoOp" type="log4j:org.apache.logging.log4j.core.appender.Cou [...]
+Although Appenders do not have to extend this class, doing so will simplify 
their implementation.</documentation></annotation><choice><element 
name="Cassandra" 
type="log4j:org.apache.logging.log4j.cassandra.CassandraAppender"/><element 
name="Async" 
type="log4j:org.apache.logging.log4j.core.appender.AsyncAppender"/><element 
name="Console" 
type="log4j:org.apache.logging.log4j.core.appender.ConsoleAppender"/><element 
name="CountingNoOp" type="log4j:org.apache.logging.log4j.core.appender.Cou [...]
 
-The stream encoding is defined in the 
layout.</documentation></annotation><choice><element name="Console" 
type="log4j:org.apache.logging.log4j.core.appender.ConsoleAppender"/><element 
name="File" 
type="log4j:org.apache.logging.log4j.core.appender.FileAppender"/><element 
name="MemoryMappedFile" 
type="log4j:org.apache.logging.log4j.core.appender.MemoryMappedFileAppender"/><element
 name="OutputStream" 
type="log4j:org.apache.logging.log4j.core.appender.OutputStreamAppender"/><element
 name="R [...]
+The stream encoding is defined in the 
layout.</documentation></annotation><choice><element name="Console" 
type="log4j:org.apache.logging.log4j.core.appender.ConsoleAppender"/><element 
name="File" 
type="log4j:org.apache.logging.log4j.core.appender.FileAppender"/><element 
name="MemoryMappedFile" 
type="log4j:org.apache.logging.log4j.core.appender.MemoryMappedFileAppender"/><element
 name="OutputStream" 
type="log4j:org.apache.logging.log4j.core.appender.OutputStreamAppender"/><element
 name="R [...]
 
 You can configure an AsyncAppender with one or more Appenders and an Appender 
to append to if the queue is full.
 The AsyncAppender does not allow a filter to be specified on the Appender 
references.</documentation></annotation><sequence><group 
ref="log4j:org.apache.logging.log4j.core.Filter" minOccurs="0"></group><group 
ref="log4j:org.apache.logging.log4j.core.async.BlockingQueueFactory" 
minOccurs="0"></group><element name="AppenderRef" 
type="log4j:org.apache.logging.log4j.core.config.AppenderRef" 
maxOccurs="unbounded"></element><element name="property" 
type="log4j:org.apache.logging.log4j.core.con [...]
@@ -53,7 +53,7 @@ TODO Accessing `System. out` or `System. err` as a byte 
stream instead of a writ
 Typically, a Layout will generate a String and then call getBytes which may 
use a configured encoding or the system default.
 OTOH, a Writer cannot print byte 
streams.</documentation></annotation><sequence><group 
ref="log4j:org.apache.logging.log4j.core.Filter" minOccurs="0"></group><group 
ref="log4j:org.apache.logging.log4j.core.Layout" minOccurs="0"></group><element 
name="property" type="log4j:org.apache.logging.log4j.core.config.Property" 
minOccurs="0" maxOccurs="unbounded"></element></sequence><attribute 
name="bufferSize" type="int"></attribute><attribute name="bufferedIo" 
type="boolean"></attribute><attrib [...]
 
-Hopefully it is obvious that the Appenders must be configured to not suppress 
exceptions for the FailoverAppender to 
work.</documentation></annotation><sequence><group 
ref="log4j:org.apache.logging.log4j.core.Filter" 
minOccurs="0"><annotation><documentation>A Filter 
(optional).</documentation></annotation></group></sequence><attribute 
name="ignoreExceptions" type="string"><annotation><documentation>If `"true"` 
(default) exceptions encountered when appending events are logged; otherwise t 
[...]
+Hopefully it is obvious that the Appenders must be configured to not suppress 
exceptions for the FailoverAppender to 
work.</documentation></annotation><sequence><group 
ref="log4j:org.apache.logging.log4j.core.Filter" 
minOccurs="0"><annotation><documentation>A Filter 
(optional).</documentation></annotation></group></sequence><attribute 
name="ignoreExceptions" type="string"><annotation><documentation>If `"true"` 
(default) exceptions encountered when appending events are logged; otherwise t 
[...]
 
 Use for compatibility with version 1.2 and handy for composing a 
apiref:org.apache.logging.log4j.core.appender.ScriptAppenderSelector[].</documentation></annotation><attribute
 name="name" type="string"></attribute></complexType><complexType 
name="org.apache.logging.log4j.core.appender.OutputStreamAppender"><annotation><documentation>Appends
 log events to a given output stream using a layout.
 
@@ -75,9 +75,11 @@ Defaults to 
.</documentation></annotation></attribute><attribute name="cc" type=
 
 Disabled by default.</documentation></annotation></attribute><attribute 
name="smtpHost" type="string"><annotation><documentation>Host name of SMTP 
server to send messages 
through.</documentation></annotation></attribute><attribute name="smtpPassword" 
type="string"><annotation><documentation>Password to authenticate with SMTP 
server.</documentation></annotation></attribute><attribute name="smtpPort" 
type="int"><annotation><documentation>Port number of SMTP server to send 
messages through. [...]
 
-Defaults to "smtp".</documentation></annotation></attribute><attribute 
name="smtpUsername" type="string"><annotation><documentation>Username to 
authenticate with SMTP 
server.</documentation></annotation></attribute><attribute name="subject" 
type="string"><annotation><documentation>Subject template for the email 
messages.</documentation></annotation></attribute><attribute name="to" 
type="string"><annotation><documentation>Comma-separated list of recipient 
email addresses.</documentation>< [...]
+Defaults to "smtp".</documentation></annotation></attribute><attribute 
name="smtpUsername" type="string"><annotation><documentation>Username to 
authenticate with SMTP 
server.</documentation></annotation></attribute><attribute name="subject" 
type="string"><annotation><documentation>Subject template for the email 
messages.</documentation></annotation></attribute><attribute name="to" 
type="string"><annotation><documentation>Comma-separated list of recipient 
email addresses.</documentation>< [...]
 
-Supports both TCP and UDP.</documentation></annotation><choice><element 
name="Syslog" 
type="log4j:org.apache.logging.log4j.core.appender.SyslogAppender"/></choice></group><complexType
 
name="org.apache.logging.log4j.core.appender.SyslogAppender"><annotation><documentation>The
 Syslog Appender.</documentation></annotation><sequence><group 
ref="log4j:org.apache.logging.log4j.core.Filter" minOccurs="0"></group><group 
ref="log4j:org.apache.logging.log4j.core.Layout" minOccurs="0"></group><elem 
[...]
+Supports both TCP and UDP.</documentation></annotation><sequence><group 
ref="log4j:org.apache.logging.log4j.core.Filter" minOccurs="0"></group><group 
ref="log4j:org.apache.logging.log4j.core.Layout" minOccurs="0"></group><element 
name="property" type="log4j:org.apache.logging.log4j.core.config.Property" 
minOccurs="0" maxOccurs="unbounded"></element><element name="SocketOptions" 
type="log4j:org.apache.logging.log4j.core.net.SocketOptions" 
minOccurs="0"></element><element name="Ssl" type=" [...]
+
+Supports both TCP and UDP.</documentation></annotation><choice><element 
name="Socket" 
type="log4j:org.apache.logging.log4j.core.appender.SocketAppender"/><element 
name="Syslog" 
type="log4j:org.apache.logging.log4j.core.appender.SyslogAppender"/></choice></group><complexType
 
name="org.apache.logging.log4j.core.appender.SyslogAppender"><annotation><documentation>The
 Syslog Appender.</documentation></annotation><sequence><group 
ref="log4j:org.apache.logging.log4j.core.Filter" minOccurs="0"> [...]
 
 All database appenders should inherit from this base 
appender.</documentation></annotation><choice><element name="Cassandra" 
type="log4j:org.apache.logging.log4j.cassandra.CassandraAppender"/><element 
name="JDBC" 
type="log4j:org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender"/><element
 name="JPA" 
type="log4j:org.apache.logging.log4j.core.appender.db.jpa.JpaAppender"/><element
 name="NoSql" 
type="log4j:org.apache.logging.log4j.core.appender.nosql.NoSqlAppender"/></choice></group><
 [...]
 
@@ -122,7 +124,7 @@ Requires the JeroMQ jar (LGPL as of 
0.3.5)</documentation></annotation><sequence
 
 It requires implementations of 
apiref:org.apache.logging.log4j.core.appender.nosql.NoSqlObject[], 
apiref:org.apache.logging.log4j.core.appender.nosql.NoSqlConnection[], and 
apiref:org.apache.logging.log4j.core.appender.nosql.NoSqlProvider[] to "know" 
how to write events to the chosen NoSQL database.
 
-For examples on how to write your own NoSQL provider, see the simple source 
code for the MongoDB and CouchDB 
providers.</documentation></annotation><sequence><group 
ref="log4j:org.apache.logging.log4j.core.Filter" minOccurs="0"></group><group 
ref="log4j:org.apache.logging.log4j.core.Layout" minOccurs="0"></group><group 
ref="log4j:org.apache.logging.log4j.core.appender.nosql.NoSqlProvider" 
minOccurs="0"><annotation><documentation>Sets the 
provider.</documentation></annotation></group><ele [...]
+For examples on how to write your own NoSQL provider, see the simple source 
code for the MongoDB and CouchDB 
providers.</documentation></annotation><sequence><group 
ref="log4j:org.apache.logging.log4j.core.Filter" minOccurs="0"></group><group 
ref="log4j:org.apache.logging.log4j.core.Layout" minOccurs="0"></group><group 
ref="log4j:org.apache.logging.log4j.core.appender.nosql.NoSqlProvider" 
minOccurs="0"><annotation><documentation>Sets the 
provider.</documentation></annotation></group><ele [...]
 
 The DefaultRolloverStrategy is a combination of a time-based policy and a 
fixed-window policy.
 When the file name pattern contains a date format then the rollover time 
interval will be used to calculate the time to use in the file pattern.
@@ -198,7 +200,7 @@ xml configuration will produce either a "?" character or no 
output at all.
 
 For best performance, use AsyncLoggerConfig with the RandomAccessFileAppender 
or RollingRandomAccessFileAppender, with immediateFlush=false.
 These appenders have built-in support for the batching mechanism used by the 
Disruptor library, and they will flush to disk at the end of each batch.
-This means that even with immediateFlush=false, there will never be any items 
left in the buffer; all log events will all be written to disk in a very 
efficient manner.</documentation></annotation><sequence><group 
ref="log4j:org.apache.logging.log4j.core.Filter" minOccurs="0"></group><element 
name="AppenderRef" 
type="log4j:org.apache.logging.log4j.core.config.AppenderRef" minOccurs="0" 
maxOccurs="unbounded"></element><element name="property" 
type="log4j:org.apache.logging.log4j.core.conf [...]
+This means that even with immediateFlush=false, there will never be any items 
left in the buffer; all log events will all be written to disk in a very 
efficient manner.</documentation></annotation><sequence><group 
ref="log4j:org.apache.logging.log4j.core.Filter" minOccurs="0"></group><element 
name="AppenderRef" 
type="log4j:org.apache.logging.log4j.core.config.AppenderRef" minOccurs="0" 
maxOccurs="unbounded"></element><element name="property" 
type="log4j:org.apache.logging.log4j.core.conf [...]
 The possible values are:
 
 * `out` for using standard out (default)
@@ -207,7 +209,7 @@ The possible values are:
 
 If the provided value is invalid, then the default destination of standard out 
will be used.</documentation></annotation></attribute><attribute name="name" 
type="string"><annotation><documentation>Name of the 
configuration</documentation></annotation></attribute><attribute 
name="monitorInterval" type="int"><annotation><documentation>Number of seconds 
between polls for configuration 
changes</documentation></annotation></attribute><attribute name="schema" 
type="string"><annotation><documen [...]
 Possible values are `enable` and `disable`.
-The shutdown hook is enabled by default, unless Log4j detects the presence of 
the Servlet API.</documentation></annotation></attribute><attribute 
name="shutdownTimeout" type="int"><annotation><documentation>Timeout in 
milliseconds of the logger context shut 
down</documentation></annotation></attribute><attribute name="status" 
type="log4j:org.apache.logging.log4j.Level"><annotation><documentation>Sets the 
level of the status logger</documentation></annotation></attribute><attribute 
name=" [...]
+The shutdown hook is enabled by default, unless Log4j detects the presence of 
the Servlet API.</documentation></annotation></attribute><attribute 
name="shutdownTimeout" type="int"><annotation><documentation>Timeout in 
milliseconds of the logger context shut 
down</documentation></annotation></attribute><attribute name="status" 
type="log4j:org.apache.logging.log4j.Level"><annotation><documentation>Sets the 
level of the status logger</documentation></annotation></attribute><attribute 
name=" [...]
 
 ConfigurationFactory allows the configuration implementation to be dynamically 
chosen in 1 of 3 ways:
 
@@ -220,7 +222,7 @@ The apiref:org.apache.logging.log4j.core.config.Order[] 
annotation should be use
 See apiref:org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory[] 
for an example.
 
 If the ConfigurationFactory that was added returns null on a call to 
getConfiguration then any other ConfigurationFactories found as plugins will be 
called in their respective order.
-DefaultConfiguration is always called last if no configuration has been 
returned.</documentation></annotation><choice><element 
name="JsonConfigurationFactory" 
type="log4j:org.apache.logging.log4j.core.config.json.JsonConfigurationFactory"/><element
 name="PropertiesConfigurationFactory" 
type="log4j:org.apache.logging.log4j.core.config.properties.PropertiesConfigurationFactory"/><element
 name="XmlConfigurationFactory" 
type="log4j:org.apache.logging.log4j.core.config.xml.XmlConfigurationFac [...]
+DefaultConfiguration is always called last if no configuration has been 
returned.</documentation></annotation><choice><element 
name="JsonConfigurationFactory" 
type="log4j:org.apache.logging.log4j.core.config.json.JsonConfigurationFactory"/><element
 name="PropertiesConfigurationFactory" 
type="log4j:org.apache.logging.log4j.core.config.properties.PropertiesConfigurationFactory"/><element
 name="XmlConfigurationFactory" 
type="log4j:org.apache.logging.log4j.core.config.xml.XmlConfigurationFac [...]
 
 The supported formats are:
 
@@ -229,12 +231,12 @@ The supported formats are:
 * String using apiref:java.nio.charset.Charset#defaultCharset()[] [TODO Should 
this be UTF-8 instead?
 ]</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.ByteConverter"><annotation><documentation>Converts
 a apiref:java.lang.String[] into a 
apiref:java.lang.Byte[].</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.CharArrayConverter"><annotation><documentation>Converts
 a apiref:java.lang.String[] into a `char[]`.</documentation></ann [...]
 
-Returns `null` for invalid level 
names.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.LongConverter"><annotation><documentation>Converts
 a apiref:java.lang.String[] into a 
apiref:java.lang.Long[].</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.PathConverter"><annotation><documentation>Converts
 a apiref:java.lang.String[] into [...]
+Returns `null` for invalid level 
names.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.LongConverter"><annotation><documentation>Converts
 a apiref:java.lang.String[] into a 
apiref:java.lang.Long[].</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.PathConverter"><annotation><documentation>Converts
 a apiref:java.lang.String[] into [...]
 
 Filters can be either context wide or attached to an appender.
 A filter may choose to support being called only from the context or only from 
an appender in which case it will only implement the required method(s). The 
rest will default to return 
apiref:org.apache.logging.log4j.core.filter.org.apache.logging.log4j.core.Filter.Result#NEUTRAL[].
 
-Garbage-free note: the methods with unrolled varargs by default delegate to 
the apiref:org.apache.logging.log4j.core.filter.AbstractFilter#filter(Logger, 
Level, Marker, String, Object...)[filter method with vararg parameters]. 
Subclasses that want to be garbage-free should override these methods to 
implement the appropriate filtering without creating a vararg 
array.</documentation></annotation><choice><element name="BurstFilter" 
type="log4j:org.apache.logging.log4j.core.filter.BurstFilte [...]
+Garbage-free note: the methods with unrolled varargs by default delegate to 
the apiref:org.apache.logging.log4j.core.filter.AbstractFilter#filter(Logger, 
Level, Marker, String, Object...)[filter method with vararg parameters]. 
Subclasses that want to be garbage-free should override these methods to 
implement the appropriate filtering without creating a vararg 
array.</documentation></annotation><choice><element name="BurstFilter" 
type="log4j:org.apache.logging.log4j.core.filter.BurstFilte [...]
 
 Use this filter when you want to control the maximum burst of log statements 
that can be sent to an appender.
 The filter is configured in the log4j configuration file.
@@ -256,7 +258,7 @@ 
DENY.</documentation></annotation></attribute></complexType><complexType name="o
 
 By default the context is the apiref:org.apache.logging.log4j.ThreadContext[], 
but users may 
apiref:org.apache.logging.log4j.core.impl.ContextDataInjectorFactory[configure] 
a custom apiref:org.apache.logging.log4j.core.ContextDataInjector[] which 
obtains context data from some other 
source.</documentation></annotation><sequence><element name="KeyValuePair" 
type="log4j:org.apache.logging.log4j.core.util.KeyValuePair" minOccurs="0" 
maxOccurs="unbounded"><annotation><documentation>An array  [...]
 
-Extends apiref:org.apache.logging.log4j.core.LifeCycle[] since filters have a 
life cycle.</documentation></annotation><choice><element name="Cassandra" 
type="log4j:org.apache.logging.log4j.cassandra.CassandraAppender"/><element 
name="Async" 
type="log4j:org.apache.logging.log4j.core.appender.AsyncAppender"/><element 
name="Console" 
type="log4j:org.apache.logging.log4j.core.appender.ConsoleAppender"/><element 
name="CountingNoOp" 
type="log4j:org.apache.logging.log4j.core.appender.CountingNoO [...]
+Extends apiref:org.apache.logging.log4j.core.LifeCycle[] since filters have a 
life cycle.</documentation></annotation><choice><element name="Cassandra" 
type="log4j:org.apache.logging.log4j.cassandra.CassandraAppender"/><element 
name="Async" 
type="log4j:org.apache.logging.log4j.core.appender.AsyncAppender"/><element 
name="Console" 
type="log4j:org.apache.logging.log4j.core.appender.ConsoleAppender"/><element 
name="CountingNoOp" 
type="log4j:org.apache.logging.log4j.core.appender.CountingNoO [...]
 
 Defaults to Result.
 NEUTRAL.</documentation></annotation></attribute><attribute name="onMismatch" 
type="log4j:org.apache.logging.log4j.core.Filter.Result"><annotation><documentation>Sets
 the Result to return when the filter does not match.
@@ -268,7 +270,7 @@ The default values for 
apiref:org.apache.logging.log4j.core.filter.LevelRangeFil
 The default values for 
apiref:org.apache.logging.log4j.core.filter.LevelRangeFilter#onMatch[] and 
apiref:org.apache.logging.log4j.core.filter.LevelRangeFilter#onMismatch[] are 
set to apiref:org.apache.logging.log4j.core.filter.Result#NEUTRAL[] and 
apiref:org.apache.logging.log4j.core.filter.Result#DENY[], respectively.
 
 The levels get compared by their associated integral values; 
apiref:org.apache.logging.log4j.Level#OFF[] has an integral value of 0, 
apiref:org.apache.logging.log4j.Level#FATAL[] 100, 
apiref:org.apache.logging.log4j.Level#ERROR[] 200, and so on.
-For example, if the filter is configured with 
apiref:org.apache.logging.log4j.core.filter.LevelRangeFilter#maxLevel[] set to 
apiref:org.apache.logging.log4j.Level#INFO[], the filter will return 
apiref:org.apache.logging.log4j.core.filter.LevelRangeFilter#onMismatch[] 
result for apiref:org.apache.logging.log4j.core.LogEvent[]s of level with 
higher integral values; apiref:org.apache.logging.log4j.Level#DEBUG[], 
apiref:org.apache.logging.log4j.Level#TRACE[], etc.</documentation></annotation 
[...]
+For example, if the filter is configured with 
apiref:org.apache.logging.log4j.core.filter.LevelRangeFilter#maxLevel[] set to 
apiref:org.apache.logging.log4j.Level#INFO[], the filter will return 
apiref:org.apache.logging.log4j.core.filter.LevelRangeFilter#onMismatch[] 
result for apiref:org.apache.logging.log4j.core.LogEvent[]s of level with 
higher integral values; apiref:org.apache.logging.log4j.Level#DEBUG[], 
apiref:org.apache.logging.log4j.Level#TRACE[], etc.</documentation></annotation 
[...]
 
 Defaults to Result.
 NEUTRAL.</documentation></annotation></attribute><attribute name="onMismatch" 
type="log4j:org.apache.logging.log4j.core.Filter.Result"><annotation><documentation>Sets
 the Result to return when the filter does not match.
@@ -296,7 +298,7 @@ DENY.</documentation></annotation></attribute><attribute 
name="text" type="strin
 If not "or" the operation will be an 
"and".</documentation></annotation></attribute></complexType><complexType 
name="org.apache.logging.log4j.core.filter.ThreadContextMapFilter"><annotation><documentation>Filter
 based on a value in the Thread Context Map 
(MDC).</documentation></annotation><sequence><element name="KeyValuePair" 
type="log4j:org.apache.logging.log4j.core.util.KeyValuePair" minOccurs="0" 
maxOccurs="unbounded"></element></sequence><attribute name="onMatch" 
type="log4j:org.apa [...]
 
 For example, if the ThresholdFilter is configured with Level ERROR and the 
LogEvent contains Level DEBUG then the onMismatch value will be returned since 
ERROR events are more specific than DEBUG.
-The default Level is ERROR.</documentation></annotation><attribute 
name="level" 
type="log4j:org.apache.logging.log4j.Level"><annotation><documentation>The log 
Level.</documentation></annotation></attribute><attribute name="onMatch" 
type="log4j:org.apache.logging.log4j.core.Filter.Result"><annotation><documentation>The
 action to take on a match.</documentation></annotation></attribute><attribute 
name="onMismatch" 
type="log4j:org.apache.logging.log4j.core.Filter.Result"><annotation><docume 
[...]
+The default Level is ERROR.</documentation></annotation><attribute 
name="level" 
type="log4j:org.apache.logging.log4j.Level"><annotation><documentation>The log 
Level.</documentation></annotation></attribute><attribute name="onMatch" 
type="log4j:org.apache.logging.log4j.core.Filter.Result"><annotation><documentation>The
 action to take on a match.</documentation></annotation></attribute><attribute 
name="onMismatch" 
type="log4j:org.apache.logging.log4j.core.Filter.Result"><annotation><docume 
[...]
 
 Depends on Apache Commons CSV 
1.2.</documentation></annotation><choice><element name="CsvLogEventLayout" 
type="log4j:org.apache.logging.log4j.core.layout.CsvLogEventLayout"/><element 
name="CsvParameterLayout" 
type="log4j:org.apache.logging.log4j.core.layout.CsvParameterLayout"/></choice></group><group
 
name="org.apache.logging.log4j.core.layout.AbstractJacksonLayout"><choice><element
 name="JsonLayout" 
type="log4j:org.apache.logging.log4j.core.layout.JsonLayout"/><element 
name="XmlLayout"  [...]
 
@@ -383,17 +385,17 @@ Supports Lookup 
expressions.</documentation></annotation><sequence><element name
 
 If "true", includes the stacktrace of any Throwable in the generated data, 
defaults to "true".</documentation></annotation></attribute><attribute 
name="includeTimeMillis" type="boolean"><annotation><documentation>Whether to 
include the timestamp (in addition to the Instant) (optional, default to 
false).</documentation></annotation></attribute><attribute name="locationInfo" 
type="boolean"></attribute><attribute name="properties" 
type="boolean"></attribute><attribute name="stacktraceAsStri [...]
 
-Handles saving the Configuration.</documentation></annotation><choice><element 
name="interpolator_test" 
type="log4j:org.apache.logging.log4j.core.lookup.InterpolatorTest.Lookup"/><element
 name="log4j" 
type="log4j:org.apache.logging.log4j.core.lookup.Log4jLookup"/></choice></group><group
 
name="org.apache.logging.log4j.core.lookup.AbstractLookup"><annotation><documentation>A
 default lookup for others to 
extend.</documentation></annotation><choice><element name="env" 
type="log4j:org.apache. [...]
+Handles saving the Configuration.</documentation></annotation><choice><element 
name="log4j" 
type="log4j:org.apache.logging.log4j.core.lookup.Log4jLookup"/></choice></group><group
 
name="org.apache.logging.log4j.core.lookup.AbstractLookup"><annotation><documentation>A
 default lookup for others to 
extend.</documentation></annotation><choice><element name="env" 
type="log4j:org.apache.logging.log4j.core.lookup.EnvironmentLookup"/><element 
name="event" type="log4j:org.apache.logging.log4j.core [...]
 
 By default this is the apiref:org.apache.logging.log4j.ThreadContext[], but 
users may 
apiref:org.apache.logging.log4j.core.impl.ContextDataInjectorFactory[configure] 
a custom apiref:org.apache.logging.log4j.core.ContextDataInjector[] which 
obtains context data from some other 
source.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.lookup.DateLookup"><annotation><documentation>Formats
 the current date or the date in the LogEvent.
 
 The "key" is used as the format String, following the java.
 text.
-SimpleDateFormat date and time pattern 
strings.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.lookup.EnvironmentLookup"><annotation><documentation>Looks
 up keys from environment 
variables.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.lookup.EventLookup"><annotation><documentation>Looks
 up values from the log 
event.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4 [...]
+SimpleDateFormat date and time pattern 
strings.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.lookup.EnvironmentLookup"><annotation><documentation>Looks
 up keys from environment 
variables.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.lookup.EventLookup"><annotation><documentation>Looks
 up values from the log 
event.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4 [...]
 
 The passed in "key" should be the value of another 
lookup.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.lookup.MainMapLookup"><annotation><documentation>A
 map-based lookup for main arguments.
 
-See 
apiref:org.apache.logging.log4j.core.lookup.MainMapLookup#setMainArguments(String[])[].</documentation></annotation></complexType><group
 
name="org.apache.logging.log4j.core.lookup.MapLookup"><annotation><documentation>A
 map-based lookup.</documentation></annotation><choice><element 
name="jvmrunargs" 
type="log4j:org.apache.logging.log4j.core.lookup.JmxRuntimeInputArgumentsLookup"/><element
 name="main" 
type="log4j:org.apache.logging.log4j.core.lookup.MainMapLookup"/></choice></group><c
 [...]
+See 
apiref:org.apache.logging.log4j.core.lookup.MainMapLookup#setMainArguments(String[])[].</documentation></annotation></complexType><complexType
 
name="org.apache.logging.log4j.core.lookup.MapLookup"><annotation><documentation>A
 map-based lookup.</documentation></annotation></complexType><group 
name="org.apache.logging.log4j.core.lookup.MapLookup"><annotation><documentation>A
 map-based lookup.</documentation></annotation><choice><element 
name="jvmrunargs" type="log4j:org.apache.logging. [...]
 
 This class represents the simplest form of a string to string map.
 It has a benefit over a map in that it can create the result on demand based 
on the key.
@@ -401,9 +403,9 @@ It has a benefit over a map in that it can create the 
result on demand based on
 This class comes complete with various factory methods.
 If these do not suffice, you can subclass and implement your own matcher.
 
-For example, it would be possible to implement a lookup that used the key as a 
primary key, and looked up the value on demand from the 
database</documentation></annotation><choice><element name="ctx" 
type="log4j:org.apache.logging.log4j.core.lookup.ContextMapLookup"/><element 
name="date" 
type="log4j:org.apache.logging.log4j.core.lookup.DateLookup"/><element 
name="env" 
type="log4j:org.apache.logging.log4j.core.lookup.EnvironmentLookup"/><element 
name="event" type="log4j:org.apache.logging [...]
+For example, it would be possible to implement a lookup that used the key as a 
primary key, and looked up the value on demand from the 
database</documentation></annotation><choice><element name="ctx" 
type="log4j:org.apache.logging.log4j.core.lookup.ContextMapLookup"/><element 
name="date" 
type="log4j:org.apache.logging.log4j.core.lookup.DateLookup"/><element 
name="env" 
type="log4j:org.apache.logging.log4j.core.lookup.EnvironmentLookup"/><element 
name="event" type="log4j:org.apache.logging [...]
 
-The passed in "key" should be the value of another 
lookup.</documentation></annotation></complexType><group 
name="org.apache.logging.log4j.core.net.Advertiser"><choice><element 
name="default" 
type="log4j:org.apache.logging.log4j.core.config.DefaultAdvertiser"/><element 
name="memory" 
type="log4j:org.apache.logging.log4j.core.config.InMemoryAdvertiser"/><element 
name="multicastdns" 
type="log4j:org.apache.logging.log4j.core.net.MulticastDnsAdvertiser"/></choice></group><simpleType
 name="org [...]
+The passed in "key" should be the value of another 
lookup.</documentation></annotation></complexType><group 
name="org.apache.logging.log4j.core.net.Advertiser"><choice><element 
name="default" 
type="log4j:org.apache.logging.log4j.core.config.DefaultAdvertiser"/><element 
name="multicastdns" 
type="log4j:org.apache.logging.log4j.core.net.MulticastDnsAdvertiser"/></choice></group><simpleType
 
name="org.apache.logging.log4j.core.net.Facility"><annotation><documentation>The
 facility codes used b [...]
 
 [cols="1,1"]
 |===
@@ -507,7 +509,7 @@ 
html#SSLContext</documentation></annotation></attribute></complexType><group nam
 See the Java Secure Socket Extension Reference Guide for information these 
names.</documentation></annotation></attribute><attribute name="type" 
type="string"><annotation><documentation>The KeyStore type, null defaults to 
`"JKS"`.</documentation></annotation></attribute></complexType><group 
name="org.apache.logging.log4j.core.pattern.AbstractPatternConverter"><annotation><documentation>AbstractPatternConverter
 is an abstract class that provides the formatting functionality that derived c 
[...]
 
 Conversion specifiers in a conversion patterns are parsed to individual 
PatternConverters.
-Each of which is responsible for converting an object in a converter specific 
manner.</documentation></annotation><choice><element 
name="TestFormatPatternConverter" 
type="log4j:org.apache.logging.log4j.core.TestPatternConverters.TestFormatPatternConverter"/><element
 name="TestParametersPatternConverter" 
type="log4j:org.apache.logging.log4j.core.TestPatternConverters.TestParametersPatternConverter"/><element
 name="black" 
type="log4j:org.apache.logging.log4j.core.pattern.AbstractStyleNameC [...]
+Each of which is responsible for converting an object in a converter specific 
manner.</documentation></annotation><choice><element name="black" 
type="log4j:org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.Black"/><element
 name="blue" 
type="log4j:org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.Blue"/><element
 name="cyan" 
type="log4j:org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.Cyan"/><element
 name="green" type="log4j:org.apache.logging. [...]
 
 Adds ANSI color styling to the result of the enclosed 
pattern.</documentation></annotation><choice><element name="black" 
type="log4j:org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.Black"/><element
 name="blue" 
type="log4j:org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.Blue"/><element
 name="cyan" 
type="log4j:org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter.Cyan"/><element
 name="green" type="log4j:org.apache.logging.log4j.core.pattern.Abst [...]
 
@@ -571,7 +573,7 @@ To disable ANSI output unconditionally, specify an 
additional option `disableAns
 [source,java]
 ----
 %highlight{%d{ ISO8601 } [%t] %-5level: %msg%n%throwable}{STYLE=DEFAULT, 
noConsoleNoAnsi=true}
-----</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.IntegerPatternConverter"><annotation><documentation>Formats
 an integer.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.LevelPatternConverter"><annotation><documentation>Returns
 the event's level in a 
StringBuilder.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.LineLocationPatternCon [...]
+----</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.IntegerPatternConverter"><annotation><documentation>Formats
 an integer.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.LevelPatternConverter"><annotation><documentation>Returns
 the event's level in a 
StringBuilder.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.LineLocationPatternCon [...]
 util.
 Hashtable.
 toString(), or to output the value of a specific key within the 
Map.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.MarkerPatternConverter"><annotation><documentation>Returns
 events' full marker string in a 
StringBuilder.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.MarkerSimpleNamePatternConverter"><annotation><documentation>Appends
 an event's maker name to a StringBuilder.</documen [...]
@@ -581,18 +583,18 @@ On invalid length the default value 100 is used (and an 
error message is logged)
 Example usage (for email subject): `"%maxLen{[AppName, ${hostName}, 
${web:contextPath}] %p: %c{1} - %m%notEmpty{ 
=&gt;%ex{short}}}{160}"`</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.MdcPatternConverter"><annotation><documentation>Able
 to handle the contents of the LogEvent's MDC and either output the entire 
contents of the properties in a similar format to the java.
 util.
 Hashtable.
-toString(), or to output the value of a specific key within the property 
bundle when this pattern converter has the option 
set.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.MessagePatternConverter"><annotation><documentation>Returns
 the event's rendered message in a 
StringBuilder.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.MethodLocationPatternConverter"><annotation><documentatio
 [...]
+toString(), or to output the value of a specific key within the property 
bundle when this pattern converter has the option 
set.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.MessagePatternConverter"><annotation><documentation>Returns
 the event's rendered message in a 
StringBuilder.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.MethodLocationPatternConverter"><annotation><documentatio
 [...]
 
 The extended stack trace will also include the location of where the class was 
loaded from and the version of the jar if 
available.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.SequenceNumberPatternConverter"><annotation><documentation>Formats
 the event sequence 
number.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.StyleConverter"><annotation><documentation>Style
 pattern converter.
 
 Adds ANSI color styling to the result of the enclosed pattern.
 
-To disable ANSI output unconditionally, specify an additional option 
`disableAnsi=true`, or to disable ANSI output if no console is detected, 
specify option 
`noConsoleNoAnsi=true`.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.ThreadIdPatternConverter"><annotation><documentation>Formats
 the event thread ID.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.ThreadNamePatternConverter"><an 
[...]
+To disable ANSI output unconditionally, specify an additional option 
`disableAnsi=true`, or to disable ANSI output if no console is detected, 
specify option 
`noConsoleNoAnsi=true`.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.ThreadIdPatternConverter"><annotation><documentation>Formats
 the event thread ID.</documentation></annotation></complexType><complexType 
name="org.apache.logging.log4j.core.pattern.ThreadNamePatternConverter"><an 
[...]
 
 Causes a reconfiguration when a file 
changes.</documentation></annotation><choice><element name="http" 
type="log4j:org.apache.logging.log4j.core.config.HttpWatcher"/></choice></group><group
 name="org.apache.logging.log4j.core.util.Builder"><annotation><documentation>A 
type of builder that can be used to configure and create a instances using a 
Java DSL instead of through a configuration file.
 
 These builders are primarily useful for internal code and unit tests, but they 
can technically be used as a verbose alternative to configuration files.
 
-When creating _plugin_ builders, it is customary to create the builder class 
as a public static inner class called `Builder`. For instance, the builder 
class for 
apiref:org.apache.logging.log4j.core.util.org.apache.logging.log4j.core.layout.PatternLayout[PatternLayout]
 would be `PatternLayout. 
Builder`.</documentation></annotation><choice><element name="SocketOptions" 
type="log4j:org.apache.logging.log4j.core.net.SocketOptions"/><element 
name="SocketPerformancePreferences" type="log4j:or [...]
+When creating _plugin_ builders, it is customary to create the builder class 
as a public static inner class called `Builder`. For instance, the builder 
class for 
apiref:org.apache.logging.log4j.core.util.org.apache.logging.log4j.core.layout.PatternLayout[PatternLayout]
 would be `PatternLayout. 
Builder`.</documentation></annotation><choice><element name="SocketOptions" 
type="log4j:org.apache.logging.log4j.core.net.SocketOptions"/><element 
name="SocketPerformancePreferences" type="log4j:or [...]
 
-Logs with apiref:jakarta.servlet.ServletContext#log(String,Throwable)[] if 
true and with apiref:jakarta.servlet.ServletContext#log(String)[] if 
false.</documentation></annotation></attribute><attribute name="name" 
type="string"></attribute></complexType></schema>
+Logs with apiref:jakarta.servlet.ServletContext#log(String,Throwable)[] if 
true and with apiref:jakarta.servlet.ServletContext#log(String)[] if 
false.</documentation></annotation></attribute><attribute name="name" 
type="string"></attribute></complexType></schema>
\ No newline at end of file

Reply via email to