¿Esquema XML o DTD para logback.xml?

108

He visto varias discusiones en la red sobre lo bueno que sería tener un esquema XML o DTD para el archivo logback.xml para tener al menos la validación básica y la finalización automática en IDE como IDEA o Eclipse, pero nunca vi alguna solución.

¿Tuviste?

Vladislav Rastrusny
fuente
38
En cuanto a la validación y el autocompletado, vea las respuestas a continuación ... pero para que eclipse deje de advertirme, utilizo un viejo DTD confiable de <!DOCTYPE configuration>. No soporto las advertencias en mis proyectos, supongo que TOC.
Lucas
6
@Lucas No es tan TOC yo diría. Las advertencias irrelevantes pueden ocultar advertencias importantes. Me acaba de pasar.
raphinesse
2
Yo también soy un poco compulsivo, pero agregar esta línea <! DOCTYPE configuration> como sugieres no hizo nada para quitarme la advertencia ... ¿alguna idea?
Marc
1
Después de agregar la línea <! DOCTYPE configuration>, se debe activar la validación, por ejemplo, a través del menú contextual 'Validar'.
Manuel

Respuestas:

31

No se admite oficialmente según el documentación , pero hay un proyecto independiente para proporcionar Schema for Logback

Sin embargo, debido a la extrema flexibilidad de la configuración de Logback, Schema no puede admitir todas las opciones de configuración posibles.

Sergey
fuente
1
Esta solución funciona. Simplemente colóquelo logback.xsden el mismo directorio logback.xmly agréguelo a su proyecto manualmente. En IntelliJ, por ejemplo, iría Settings > Languages & Frameworks > Schemas and DTDsy haría clic en el "+" verde para agregar un recurso externo. Establezca "URI" http://ch.qos.logback/xml/ns/logbacky "Ubicación" en la ubicación de logback.xsd.
Jonathan Landrum
1
Acabo de crear un acortador de URL para el archivo logback.xsd de este proyecto y funciona como se esperaba. Puede usarxsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://git.io/logback.xsd"
Osguima3
81

A junio de 2011, la documentación oficial indica

Como quedará claro, la sintaxis de los archivos de configuración de logback es extremadamente flexible. Como tal, no es posible especificar la sintaxis permitida con un archivo DTD o un esquema XML.

Hubo un breve hilo sobre el tema, pero no pareció ir a ninguna parte.

Eugene Yokota
fuente
13
De la misma manera que el idioma inglés es extremadamente flexible por lo tanto no tiene reglas gramaticales ???? ¡Qué excusa para escapar!
Ken Alton
77

Solo para deshacerse de la molesta advertencia en Eclipse, agregue <!DOCTYPE xml>después <?xml version="1.0" encoding="UTF-8"?>.

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

Para deshacerse del icono de signo de exclamación después de arreglarlo, es posible que deba activar la validación nuevamente haciendo clic con el botón derecho en el archivo y seleccionando Validate.

Adrian Ber
fuente
3
Como dice el comentario de @lucas, use <!DOCTYPE configuration>. A mí me funcionaVersion: Oxygen.2 Release (4.7.2) Build id: 20171218-0600
Shamal Karunarathne
Para deshacerse del icono de signo de exclamación después de arreglarlo, como dijo @Manuel, active la validación nuevamente haciendo clic derecho en el archivo y eligiendo "Validar".
Noumenon
1
@Noumenon Agregaré tu comentario a mi respuesta. ¡Gracias!
Adrian Ber
2
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.padual.com/java/logback.xsd">

de GitHub "Una definición de esquema XML para logback" https://github.com/nkatsar/logback-XSD

Ricardo Padua Soares
fuente
Si bien esto teóricamente puede responder a la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia.
Rohit Gupta
1
¿Qué tan completo apoyo hay en ese repositorio?
Vladislav Rastrusny
Para los próximos años, como yo, la ubicación xsd anterior ya no es válida. Puede consultar git.io/logback.xsd como se menciona en una respuesta anterior
gavard.e
0

Una respuesta ligeramente diferente que permite el autocompletado de eclipse es:

<?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">
raisercostin
fuente