2011-04-20 4 views
92

Я видел несколько обсуждений в сети о том, как здорово было бы иметь схему XML или DTD для файла logback.xml, чтобы иметь как минимум самую основную проверку и автозаполнение в IDE, например IDEA или Eclipse, но я никогда не видел никакого решения.XML-схема или DTD для logback.xml?

Не так ли?

+34

Насколько проверки и автозаполнения см ответы ниже ... но, чтобы получить затмение остановить предупредив меня, я использую надежный старый DTD ''. Я не могу выносить предупреждения о своих проектах, OCD. – Lucas

+3

@ Лукас Не так OCD, я бы сказал. Нежелательные предупреждения могут скрыть важные предупреждения. Просто случилось со мной. – raphinesse

+0

Я тоже немного навязчивый, но добавляю эту строку , поскольку вы предлагаете ничего не делать, чтобы удалить предупреждение для меня ... любая идея ?? – Marc

ответ

20

Это официально не поддерживается в соответствии с documentation, но независимый проект, чтобы обеспечить Schema for Logback

Однако, из-за чрезвычайной гибкости конфигурации Logback, схема не может поддерживать все возможные варианты конфигурации.

+1

Не похоже, что он может быть разрешен дольше ... – bphilipnyc

+1

Это решение работает. Просто поместите 'logback.xsd' в тот же каталог, что и' logback.xml', и добавьте его в свой проект вручную. Например, в IntelliJ вы переходите к «Настройки»> «Языки и рамки»> «Схемы и DTD» и щелкните зеленый «+», чтобы добавить внешний ресурс. Установите «URI» на «http: // ch.qos.logback/xml/ns/logback» и «Location» в папку 'logback.xsd'. –

+0

Я только что создал корректор URL для файла logback.xsd этого проекта, и он работает как ожидалось. Вы можете использовать 'xsi: schemaLocation =" http: //ch.qos.logback/xml/ns/logback https://git.io/logback.xsd "' – Osguima3

76

По состоянию на июнь 2011 года official documentation государства

Как становится ясно, что синтаксис конфигурационных файлов Logback является чрезвычайно гибкой. Таким образом, невозможно указать разрешенный синтаксис с DTD-файлом или XML-схемой.

На эту тему было a brief thread, но, похоже, никуда не делось.

+8

Точно так же, как английский язык чрезвычайно гибкий, поэтому он не имеет грамматических правил ???? Какой извиниться! –

3

independent project, указанный Сергеем, покрывал большинство моих требований.

Однако некоторые элементы отсутствовали, я добавил их на свою собственную вилку на https://github.com/nkatsar/logback-XSD. Надеюсь, что они будут объединены в основной проект.

+0

Теперь он был объединен. Согласно [Github Network Graph] (https: // github.com/enricopulatzo/logback-XSD/network), [enricopulatzo] (https://github.com/enricopulatzo/logback-XSD), кажется, является самым богатым источником. –

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

из GitHub "An XML Schema Definition для Logback" https://github.com/nkatsar/logback-XSD

+0

Хотя это теоретически может ответить на вопрос, [было бы предпочтительнее] (// meta.stackoverflow.com/q/8259) включить сюда основные части ответа и предоставить ссылку для справки. –

+1

Как полная поддержка в этом репо? –

65

Просто, чтобы избавиться от раздражающих предупреждения в Затмении добавить <!DOCTYPE xml> после <?xml version="1.0" encoding="UTF-8"?>.

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

Больше не работает с eclipse Oxygen v2 :( – mmaceachran

+0

Как комментирует @lucas, используйте ''. Он работает для меня. Версия: Oxygen.2 Release (4.7.2) Код сборки: 20171218- 0600' –

0

немного другой ответ, который позволяет затмение автозаполнения:

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