Esquema XML ou DTD para logback.xml?


108

Já vi várias discussões na rede sobre como seria ótimo ter um esquema XML ou DTD para o arquivo logback.xml para ter pelo menos a validação básica e o preenchimento automático em IDEs como IDEA ou Eclipse, mas nunca vi qualquer solução.

Você fez?


38
No que diz respeito à validação e autocompletar, veja as respostas abaixo ... mas para fazer o eclipse parar de me avisar, eu uso um velho e confiável DTD de <!DOCTYPE configuration>. Não suporto avisos sobre meus projetos, TOC, eu acho.
Lucas

6
@Lucas Não é tão TOC, eu diria. Avisos irrelevantes podem obscurecer avisos importantes. Aconteceu comigo.
raphinesse

2
Eu sou um pouco compulsivo assim também, mas adicionar esta linha <! DOCTYPE configuration> como você sugeriu não ajudou em nada para remover o aviso para mim ... alguma idéia ??
Marc

1
Depois de adicionar a linha <! DOCTYPE configuration>, é necessário acionar a validação, por exemplo, através do menu de contexto 'Validate'.
Manuel

Respostas:


31

Não é suportado oficialmente de acordo com a documentação , mas existe um projeto independente para fornecer Schema para Logback

No entanto, devido à extrema flexibilidade da configuração do Logback, o Schema não pode suportar todas as opções de configuração possíveis.


1
Essa solução funciona. Basta colocar logback.xsdno mesmo diretório logback.xmle adicioná-lo ao seu projeto manualmente. No IntelliJ, por exemplo, você acessa Settings > Languages & Frameworks > Schemas and DTDse clica no "+" verde para adicionar um recurso externo. Defina "URI" como http://ch.qos.logback/xml/ns/logbacke "Local" como o local de logback.xsd.
Jonathan Landrum,

1
Acabei de criar um encurtador de url para o arquivo logback.xsd deste projeto e está funcionando conforme o esperado. Você pode usarxsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://git.io/logback.xsd"
Osguima3

81

Em junho de 2011, a documentação oficial afirma

Como ficará claro, a sintaxe dos arquivos de configuração de logback é extremamente flexível. Como tal, não é possível especificar a sintaxe permitida com um arquivo DTD ou um Esquema XML.

Houve um breve tópico sobre o assunto, mas não parecia ir a lugar nenhum.


13
Da mesma forma que a língua inglesa é extremamente flexível, portanto, não possui regras gramaticais ???? Que desculpa esfarrapada!
Ken Alton

77

Apenas para se livrar do aviso irritante no Eclipse, adicione <!DOCTYPE xml>depois <?xml version="1.0" encoding="UTF-8"?>.

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

Para se livrar do ícone de ponto de exclamação após corrigi-lo, pode ser necessário acionar a validação novamente clicando com o botão direito no arquivo e escolhendo Validate.


3
Como diz o comentário de @lucas, use <!DOCTYPE configuration>. Funciona para mimVersion: Oxygen.2 Release (4.7.2) Build id: 20171218-0600
Shamal Karunarathne

Para se livrar do ícone de ponto de exclamação após corrigi-lo, como disse @Manuel, acione a validação novamente clicando com o botão direito do mouse no arquivo e escolhendo "Validar".
Noumenon

1
@Noumenon adicionarei seu comentário à minha resposta. Obrigado!
Adrian Ber


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

do GitHub "Uma definição de esquema XML para logback" https://github.com/nkatsar/logback-XSD


Embora isso possa teoricamente responder à pergunta, seria preferível incluir as partes essenciais da resposta aqui e fornecer o link para referência.
Rohit Gupta

1
Quão completo o suporte existe nesse repo?
Vladislav Rastrusny

Para os próximos anos, como eu, a localização xsd anterior não é mais válida. Você pode consultar git.io/logback.xsd conforme mencionado em uma resposta anterior
gavard.e

0

Uma resposta ligeiramente diferente que permite o preenchimento automático do eclipse é:

<?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">
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.