I've seen several discussions on the net about how great it would be to have an XML schema or DTD for logback.xml file to have at least the very basic validation and auto-completion in IDEs like IDEA or Eclipse, but I never saw any solution.
Did you?
<!DOCTYPE configuration>
. Can't stand warnings on my projects, OCD I guess.
As of June 2011, the official documentation states
As shall become clear, the syntax of logback configuration files is extremely flexible. As such, it is not possible specify the allowed syntax with a DTD file or an XML Schema.
There was a brief thread on the topic, but didn't seem to go anywhere.
Just to get rid of the annoying warning in Eclipse add <!DOCTYPE xml>
after <?xml version="1.0" encoding="UTF-8"?>
.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
To get rid of the exclamation point icon after you fix it, you might need to trigger the validation again by right-clicking the file and choosing Validate
.
<!DOCTYPE configuration>
. It works for me Version: Oxygen.2 Release (4.7.2) Build id: 20171218-0600
It is not supported officially according to the documentation, but there is an independent project to provide Schema for Logback
However, due to extreme flexibility of the Logback configuration, Schema cannot support all possible configuration options.
logback.xsd
in the same directory as logback.xml
and add it to your project manually. In IntelliJ, for example, you'd go to Settings > Languages & Frameworks > Schemas and DTDs
and click the green "+" to add an external resource. Set "URI" to http://ch.qos.logback/xml/ns/logback
and "Location" to the location of logback.xsd
.
xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://git.io/logback.xsd"
The independent project mentioned by Sergey covered most of my requirements.
However, some elements were missing, I added them on my own fork on on https://github.com/nkatsar/logback-XSD. Hope they will get merged in the main project.
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.padual.com/java/logback.xsd">
from GitHub "An XML Schema Definition for logback" https://github.com/nkatsar/logback-XSD
Thanks to https://github.com/enricopulatzo/logback-XSD
This will allow eclipse to autocomplete and validate if xml is not using plugins or other extensions mechanisms:
<?xml version="1.0" encoding="UTF-8"?>
<configuration
xmlns="http://ch.qos.logback/xml/ns/logback"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://ch.qos.logback/xml/ns/logback
https://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd
">
<variable
(under <configuration
) <Name
or <immediateFlush>
under an <appender
!
Success story sharing