Schéma XML ou DTD pour logback.xml?

108

J'ai vu plusieurs discussions sur le net sur à quel point ce serait génial d'avoir un schéma XML ou une DTD pour le fichier logback.xml pour avoir au moins la validation très basique et l'auto-complétion dans les IDE comme IDEA ou Eclipse, mais je n'ai jamais vu Toute solution.

As tu?

Vladislav Rastrusny
la source
38
En ce qui concerne la validation et l'auto-complétion, voir les réponses ci-dessous ... mais pour que l'éclipse cesse de me prévenir, j'utilise une ancienne DTD fidèle de <!DOCTYPE configuration>. Je ne supporte pas les avertissements sur mes projets, OCD je suppose.
Lucas
6
@Lucas Pas si TOC que je dirais. Des avertissements non pertinents peuvent masquer des avertissements importants. Ça m'est arrivé.
raphinesse
2
Je suis un peu compulsif comme ça aussi, mais l'ajout de cette ligne <! DOCTYPE configuration> comme vous le suggérez n'a rien fait pour supprimer l'avertissement pour moi ... aucune idée ??
Marc
1
Après avoir ajouté la ligne <! DOCTYPE configuration>, il faut déclencher la validation par exemple via le menu contextuel «Valider».
Manuel

Réponses:

31

Il n'est pas officiellement pris en charge selon la documentation , mais il existe un projet indépendant pour fournir un schéma pour Logback

Cependant, en raison de l'extrême flexibilité de la configuration Logback, Schema ne peut pas prendre en charge toutes les options de configuration possibles.

Sergey
la source
1
Cette solution fonctionne. Placez-le simplement logback.xsddans le même répertoire que logback.xmlet ajoutez-le manuellement à votre projet. Dans IntelliJ, par exemple, vous allez à Settings > Languages & Frameworks > Schemas and DTDset cliquez sur le vert "+" pour ajouter une ressource externe. Définissez "URI" sur http://ch.qos.logback/xml/ns/logbacket "Location" sur l'emplacement de logback.xsd.
Jonathan Landrum
1
Je viens de créer un raccourcisseur d'URL pour le fichier logback.xsd de ce projet, et il fonctionne comme prévu. Vous pouvez utiliserxsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://git.io/logback.xsd"
Osguima3
81

En juin 2011, la documentation officielle indique

Comme cela deviendra clair, la syntaxe des fichiers de configuration de connexion est extrêmement flexible. En tant que tel, il n'est pas possible de spécifier la syntaxe autorisée avec un fichier DTD ou un schéma XML.

Il y avait un bref fil sur le sujet, mais ne semblait aller nulle part.

Eugene Yokota
la source
13
De la même manière que la langue anglaise est extrêmement flexible, elle n'a donc pas de règles grammaticales ???? Quelle excuse!
Ken Alton
77

Juste pour se débarrasser de l'avertissement ennuyeux dans Eclipse, ajoutez <!DOCTYPE xml>après <?xml version="1.0" encoding="UTF-8"?>.

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

Pour vous débarrasser de l'icône de point d'exclamation après l'avoir corrigée, vous devrez peut-être déclencher à nouveau la validation en cliquant avec le bouton droit sur le fichier et en choisissant Validate.

Adrian Ber
la source
3
Comme le dit le commentaire de @lucas, utilisez <!DOCTYPE configuration>. Ça marche pour moiVersion: Oxygen.2 Release (4.7.2) Build id: 20171218-0600
Shamal Karunarathne
Pour vous débarrasser de l'icône du point d'exclamation après l'avoir corrigée, comme l'a dit @Manuel, relancez la validation en cliquant avec le bouton droit sur le fichier et en choisissant «Valider».
Noumenon le
1
@Noumenon j'ajouterai votre commentaire à ma réponse. Merci!
Adrian Ber le
2
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.padual.com/java/logback.xsd">

depuis GitHub "Une définition de schéma XML pour la connexion" https://github.com/nkatsar/logback-XSD

Ricardo Padua Soares
la source
Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien pour référence.
Rohit Gupta
1
Dans quelle mesure ce dépôt offre-t-il un support complet?
Vladislav Rastrusny
Pour les années à venir comme moi, l'emplacement xsd précédent n'est plus valide. Vous pouvez vous référer à git.io/logback.xsd comme mentionné dans une réponse précédente
gavard.e
0

Une réponse légèrement différente qui permet la saisie semi-automatique de l'éclipse est:

<?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">
raisins secs
la source