Schema XML o DTD per logback.xml?


108

Ho visto diverse discussioni in rete su quanto sarebbe bello avere uno schema XML o DTD per il file logback.xml per avere almeno la convalida di base e il completamento automatico in IDE come IDEA o Eclipse, ma non ho mai visto qualsiasi soluzione.

Hai fatto?


38
Per quanto riguarda la convalida e il completamento automatico, vedere le risposte di seguito ... ma per fare in modo che eclipse smetta di avvertirmi, utilizzo un vecchio e fidato DTD di <!DOCTYPE configuration>. Non sopporto gli avvertimenti sui miei progetti, immagino OCD.
Lucas

6
@ Lucas Non così OCD direi. Avvisi irrilevanti possono nascondere avvisi importanti. È appena successo a me.
raphinesse

2
Anch'io sono un po 'compulsivo così, ma l'aggiunta di questa riga <! DOCTYPE configuration> come suggerisci non ha fatto nulla per rimuovere l'avviso per me ... qualche idea ??
Marc

1
Dopo aver aggiunto la riga <! DOCTYPE configuration>, è necessario attivare la convalida, ad esempio tramite il menu contestuale "Convalida".
Manuel

Risposte:


31

Non è supportato ufficialmente secondo la documentazione , ma esiste un progetto indipendente per fornire Schema per Logback

Tuttavia, a causa dell'estrema flessibilità della configurazione Logback, Schema non può supportare tutte le opzioni di configurazione possibili.


1
Questa soluzione funziona. Basta inserirlo logback.xsdnella stessa directory di logback.xmle aggiungerlo manualmente al progetto. In IntelliJ, ad esempio, andresti su Settings > Languages & Frameworks > Schemas and DTDse fai clic sul "+" verde per aggiungere una risorsa esterna. Imposta "URI" su http://ch.qos.logback/xml/ns/logbacke "Posizione" sulla posizione di logback.xsd.
Jonathan Landrum

1
Ho appena creato un accorciatore di URL per il file logback.xsd di questo progetto e funziona come previsto. Puoi usarexsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://git.io/logback.xsd"
Osguima3

81

A partire da giugno 2011, la documentazione ufficiale afferma

Come risulterà chiaro, la sintassi dei file di configurazione del logback è estremamente flessibile. Pertanto, non è possibile specificare la sintassi consentita con un file DTD o uno schema XML.

C'era un breve thread sull'argomento, ma non sembrava andare da nessuna parte.


13
Allo stesso modo in cui la lingua inglese è estremamente flessibile quindi non ha regole grammaticali ???? Che scusa per scappare!
Ken Alton

77

Solo per sbarazzarsi del fastidioso avviso in Eclipse aggiungi <!DOCTYPE xml>dopo <?xml version="1.0" encoding="UTF-8"?>.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>

Per eliminare l'icona del punto esclamativo dopo averlo risolto, potrebbe essere necessario attivare nuovamente la convalida facendo clic con il pulsante destro del mouse sul file e scegliendo Validate.


3
Come dice il commento di @lucas, usa <!DOCTYPE configuration>. Per me funzionaVersion: Oxygen.2 Release (4.7.2) Build id: 20171218-0600
Shamal Karunarathne

Per eliminare l'icona del punto esclamativo dopo averlo corretto, come ha detto @Manuel, attivare di nuovo la convalida facendo clic con il pulsante destro del mouse sul file e scegliendo "Convalida".
Noumenon

1
@Noumenon aggiungerò il tuo commento alla mia risposta. Grazie!
Adrian Ber


2
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.padual.com/java/logback.xsd">

da GitHub "An XML Schema Definition for logback" https://github.com/nkatsar/logback-XSD


Sebbene questo possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento per riferimento.
Rohit Gupta

1
Qual è il supporto completo in quel repo?
Vladislav Rastrusny

Per gli anni a venire come me, la precedente posizione xsd non è più valida. Puoi fare riferimento a git.io/logback.xsd come menzionato in una risposta precedente
gavard.e

0

Una risposta leggermente diversa che consente il completamento automatico di eclissi è:

<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.padual.com/java/logback.xsd" 
    debug="true" packagingData="true" scan="true" scanPeriod="30 seconds">
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.