Non penso sia possibile avere uno schema/DTD con log4j2. Recentemente ho scritto un appender personalizzato, e per sostenere l'appender miei log4j2.xml
si presenta così:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="ERROR" packages="package.same.as.custom.appender">
<appenders>
<CyclicBuffer name="CyclicBuffer" bufferSize="200">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%t] %c{1.} - %msg%n"/>
</CyclicBuffer>
</appenders>
<loggers>
<root level="info">
<appender-ref ref="CyclicBuffer"/>
</root>
</loggers>
</configuration>
Le cose importanti da notare sono che ho un elemento completamente personalizzato CyclicBuffer
, e che ha un completamente attributo personalizzato bufferSize
. Dai un'occhiata alla documentazione che circonda @PluginFactory
e @Plugin
per maggiori dettagli.
A causa di questa personalizzazione, non penso che l'XML possa essere convalidato tramite un comune XSD/DTD comune. Invece, penso che dovrai creare il tuo XSD se vuoi convalidare l'XML.
Una cosa importante da notare, è che nel mio XML ho: <configuration status="ERROR"
. Quando questo è presente, log4j2 genererà tutti gli errori associati alla configurazione errata in fase di esecuzione. Anche se non è conveniente come la convalida XML, è anche molto utile!
Spero che questo sia di qualche aiuto, Muel.
Se si vuole solo evitare per esempio Avvertenza di Eclipse per il file XML, dai un'occhiata a [risposta a "Nessun vincolo grammaticale (DTD o schema XML) rilevato per il documento"] (http://stackoverflow.com/a/27750701/828080) di @Pub . – fheub
Si prega di dare un'occhiata a http://stackoverflow.com/a/10852980/592355. – xerx593