是XML模式还是logback.xml的DTD?


108

我已经在网上看到了一些讨论,其中有一个logback.xml文件具有XML模式或DTD至少对IDEA或Eclipse这样的IDE具有最基本的验证和自动完成功能有多大的作用,但我从未见过任何解决方案。

你是否?


38
至于验证和自动完成,请参见下面的答案...但是为了让日食停止警告我,我使用了值得信赖的旧DTD <!DOCTYPE configuration>。我猜OCD不能在我的项目上受到警告。
卢卡斯

6
@Lucas我不是说强迫症。不相关的警告会掩盖重要的警告。只是发生在我身上。
raphinesse 2014年

2
我也有点强迫,但是按照您的建议添加此<!DOCTYPE configuration>行并没有为我消除警告...任何想法吗?
2014年

1
添加<!DOCTYPE configuration>行后,必须触发验证,例如通过上下文菜单“ Validate”。
曼努埃尔

Answers:


31

根据文档,它不受官方支持,但是有一个独立的项目可以提供 Logback的架构

但是,由于Logback配置具有极大的灵活性,因此Schema无法支持所有可能的配置选项。


1
此解决方案有效。只需将logback.xsd目录放置在同一目录中,logback.xml然后将其手动添加到您的项目中即可。例如,在IntelliJ中,您将转到Settings > Languages & Frameworks > Schemas and DTDs并单击绿色的“ +”以添加外部资源。将“ URI”设置为http://ch.qos.logback/xml/ns/logback,将“ Location”设置为的位置logback.xsd
乔纳森·兰德伦

1
我刚刚为该项目的logback.xsd文件创建了一个URL缩短器,它可以按预期工作。您可以使用xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://git.io/logback.xsd"
Osguima3

81

截至2011年6月,官方文档指出

应该清楚的是,logback配置文件的语法非常灵活。因此,不可能用DTD文件或XML模式指定允许的语法。

关于这个话题有一个简短的话题,但是似乎没有什么用。


13
就像英语非常灵活一样,因此它没有语法规则???? 真是个借口!
肯·奥尔顿

77

只是为了摆脱Eclipse中令人讨厌的警告,请在<!DOCTYPE xml>之后添加<?xml version="1.0" encoding="UTF-8"?>

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

要在修复后消除感叹号图标,您可能需要通过右键单击文件并选择来再次触发验证Validate


3
正如@lucas的评论所说,请使用<!DOCTYPE configuration>。它对我Version: Oxygen.2 Release (4.7.2) Build id: 20171218-0600
有用

如@Manuel所述,要在修复感叹号图标后摆脱它,请右键单击该文件并选择“验证”,再次触发验证。
Noumenon

1
@Noumenon我会将您的评论添加到我的答案中。谢谢!
Adrian Ber


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

来自GitHub“用于登录的XML模式定义” https://github.com/nkatsar/logback-XSD


尽管从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
罗希特·古普塔


对于像我这样的未来几年,以前的xsd位置不再有效。您可以参考上一个回复中提到的git.io/logback.xsd
gavard.e

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">
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.