Skema XML atau DTD untuk logback.xml?


108

Saya telah melihat beberapa diskusi di internet tentang betapa hebatnya memiliki skema XML atau DTD untuk file logback.xml untuk memiliki setidaknya validasi yang sangat dasar dan penyelesaian otomatis dalam IDE seperti IDEA atau Eclipse, tetapi saya tidak pernah melihatnya solusi apapun.

Apakah kamu?


38
Sejauh validasi dan pelengkapan otomatis, lihat jawaban di bawah ... tetapi agar gerhana berhenti memperingatkan saya, saya menggunakan DTD lama yang tepercaya <!DOCTYPE configuration>. Tidak tahan dengan peringatan pada proyek saya, kurasa OCD.
Lucas

6
@Las Tidak begitu OCD menurut saya. Peringatan yang tidak relevan bisa membayangi peringatan penting. Baru saja terjadi pada saya.
raphinesse

2
Saya agak kompulsif seperti itu juga, tetapi menambahkan baris <! DOCTYPE configuration> seperti yang Anda sarankan tidak melakukan apa pun untuk menghapus peringatan bagi saya ... ada ide ??
Marc

1
Setelah menambahkan baris <! DOCTYPE configuration>, seseorang harus memicu validasi misalnya melalui menu konteks 'Validasi'.
Manuel

Jawaban:


31

Itu tidak didukung secara resmi menurut dokumentasi , tetapi ada proyek independen untuk menyediakan Skema untuk Logback

Namun, karena konfigurasi Logback sangat fleksibel, Skema tidak dapat mendukung semua opsi konfigurasi yang memungkinkan.


1
Solusi ini berhasil. Cukup letakkan logback.xsddi direktori yang sama logback.xmldan tambahkan ke proyek Anda secara manual. Di IntelliJ, misalnya, Anda akan pergi ke Settings > Languages & Frameworks > Schemas and DTDsdan mengklik "+" hijau untuk menambahkan sumber daya eksternal. Setel "URI" ke http://ch.qos.logback/xml/ns/logbackdan "Lokasi" ke lokasi logback.xsd.
Jonathan Landrum

1
Saya baru saja membuat pemendek url untuk file logback.xsd proyek ini, dan berfungsi seperti yang diharapkan. Anda dapat menggunakanxsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://git.io/logback.xsd"
Osguima3

81

Pada Juni 2011, dokumentasi resmi menyatakan

Seperti yang akan menjadi jelas, sintaks file konfigurasi logback sangat fleksibel. Dengan demikian, tidak mungkin menentukan sintaks yang diizinkan dengan file DTD atau Skema XML.

Ada utas singkat tentang topik itu, tetapi sepertinya tidak ke mana-mana.


13
Dengan cara yang sama bahasa Inggris sangat fleksibel sehingga tidak memiliki aturan tata bahasa ???? Benar-benar alasan yang tidak tepat!
Ken Alton

77

Hanya untuk menghilangkan peringatan yang mengganggu di Eclipse tambahkan <!DOCTYPE xml>setelahnya <?xml version="1.0" encoding="UTF-8"?>.

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

Untuk menghilangkan ikon tanda seru setelah Anda memperbaikinya, Anda mungkin perlu memicu validasi lagi dengan mengklik kanan file dan memilih Validate.


3
Seperti yang dikatakan oleh @lucas, gunakan <!DOCTYPE configuration>. Ini bekerja untuk sayaVersion: Oxygen.2 Release (4.7.2) Build id: 20171218-0600
Shamal Karunarathne

Untuk menghilangkan ikon tanda seru setelah Anda memperbaikinya, seperti yang dikatakan @Manuel, picu validasi lagi dengan mengklik kanan file dan memilih "Validasi".
Noumenon

1
@Noumenon Saya akan menambahkan komentar Anda ke jawaban saya. Terima kasih!
Adrian Ber


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

dari GitHub "Definisi Skema XML untuk logback" https://github.com/nkatsar/logback-XSD


Meskipun ini secara teoritis dapat menjawab pertanyaan, akan lebih baik jika menyertakan bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Rohit Gupta

1
Seberapa lengkap dukungan yang ada di repo itu?
Vladislav Rastrusny

Untuk tahun-tahun mendatang seperti saya, lokasi xsd sebelumnya tidak berlaku lagi. Anda dapat merujuk ke git.io/logback.xsd seperti yang disebutkan dalam tanggapan sebelumnya
gavard.e

0

Jawaban yang sedikit berbeda yang memungkinkan pelengkapan otomatis gerhana adalah:

<?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">
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.