Logback.xml için XML şeması veya DTD?


108

IDEA veya Eclipse gibi IDE'lerde en azından çok temel doğrulamaya ve otomatik tamamlamaya sahip olmak için logback.xml dosyası için bir XML şemasına veya DTD'ye sahip olmanın ne kadar harika olacağına dair ağda birkaç tartışma gördüm, ancak hiç görmedim herhangi bir çözüm.

Yaptın mı


38
Doğrulama ve otomatik tamamlama ile ilgili olarak, aşağıdaki cevaplara bakın ... ancak tutulmanın beni uyarmayı durdurması için, güvenilir eski bir DTD kullanıyorum <!DOCTYPE configuration>. Projelerimde uyarılara dayanamıyorum, OKB sanırım.
Lucas

6
@Lucas Çok OKB değil derim. Alakasız uyarılar önemli uyarıları gölgeleyebilir. Sadece bana oldu.
raphinesse

2
Ben de biraz zorlayıcıyım ama önerdiğiniz gibi bu <! DOCTYPE konfigürasyonu> satırını eklemek benim için uyarıyı kaldırmak için hiçbir şey yapmadı ... herhangi bir fikir?
Marc

1
<! DOCTYPE konfigürasyonu> satırını ekledikten sonra, örneğin bağlam menüsü 'Doğrula' aracılığıyla doğrulamayı tetiklemek gerekir.
Manuel

Yanıtlar:


31

Resmi olarak desteklenmemektedir. Belgelere , ancak Logback için Şema sağlamak için bağımsız bir proje var

Ancak, Logback yapılandırmasının aşırı esnekliği nedeniyle, Schema olası tüm yapılandırma seçeneklerini destekleyemez.


1
Bu çözüm işe yarıyor. Sadece logback.xsdaynı dizine koyun logback.xmlve projenize manuel olarak ekleyin. Örneğin IntelliJ'de, Settings > Languages & Frameworks > Schemas and DTDsharici bir kaynak eklemek için gidip yeşil "+" işaretine tıklarsınız. "URI" yı http://ch.qos.logback/xml/ns/logbackve "Konum" u konumuna ayarlayın logback.xsd.
Jonathan Landrum

1
Bu projenin logback.xsd dosyası için bir url kısaltıcı oluşturdum ve beklendiği gibi çalışıyor. Kullanabilirsinizxsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://git.io/logback.xsd"
Osguima3

81

Haziran 2011 itibariyle, resmi belgeler şu şekildedir:

Açıkça anlaşılacağı gibi, geri dönüş yapılandırma dosyalarının sözdizimi son derece esnektir. Bu nedenle, izin verilen sözdizimini bir DTD dosyası veya XML Şeması ile belirtmek mümkün değildir.

Orada kısa bir iplik konuda ancak yere gitmek görünmüyordu.


13
Tıpkı İngilizcenin son derece esnek olması gibi, bu nedenle de gramer kuralları yoktur ???? Ne bahaneden kaçma!
Ken Alton

77

Eclipse'deki sinir bozucu uyarıdan kurtulmak için <!DOCTYPE xml>sonrasına ekleyin <?xml version="1.0" encoding="UTF-8"?>.

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

Ünlem işaretini düzelttikten sonra kurtulmak için, dosyayı sağ tıklayıp seçerek doğrulamayı yeniden başlatmanız gerekebilir Validate.


3
@Lucas'ın yorumunun dediği gibi, kullanın <!DOCTYPE configuration>. Benim için çalışıyorVersion: Oxygen.2 Release (4.7.2) Build id: 20171218-0600
Shamal Karunarathne

@Manuel'in dediği gibi, ünlem işaretini düzelttikten sonra kurtulmak için, dosyayı sağ tıklayıp "Doğrula" yı seçerek doğrulamayı yeniden başlatın.
Noumenon

1
@Noumenon Yorumunuzu cevabıma ekleyeceğim. Teşekkürler!
Adrian Ber


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

GitHub'dan "Logback için bir XML Şema Tanımı" https://github.com/nkatsar/logback-XSD


Bu teorik olarak soruya cevap görülebilir fakat tercih edildiğini burada cevabın temel parçalarını kapsadığı ve başvuru için bağlantı sağlar.
Rohit Gupta

1
Bu depoda ne kadar eksiksiz destek var?
Vladislav Rastrusny

Benim gibi yıllar sonra gelecek olanlar için, önceki xsd konumu artık geçerli değil. Bir önceki yanıtta belirtildiği gibi git.io/logback.xsd'ye başvurabilirsiniz
gavard.e

0

Tutulma otomatik tamamlamaya izin veren biraz farklı bir cevap şudur:

<?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">
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.