ผมเคยใช้ log4j มากในขณะนี้และผมมักจะใช้นี้ที่ด้านบนของ log4j.xml ที่ (อาจจะเช่นเดียวกับคนอื่น ๆ อีกมากมายและเป็นไปตาม Google นี้เป็นวิธีที่จะทำ):
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
เห็นได้ชัดว่าสิ่งนี้ใช้งานได้อย่างไรก็ตาม Eclipse ไม่ได้ให้ความช่วยเหลือตามบริบทสำหรับการเขียน XML และทั้งหมด นอกจากนี้ยังแสดงคำเตือนเสมอว่าไม่พบไฟล์log4j.dtd
. ตอนนี้ฉันอยากรู้วิธีแก้ไข
ฉันลองทำสองสามอย่างและได้ผล:
<!DOCTYPE log4j:configuration SYSTEM "jar:file:/path/.m2/repository/log4j/log4j/1.2.14/log4j-1.2.14.jar!/org/apache/log4j/xml/log4j.dtd">
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
ดังที่คุณเห็นจากด้านบนเราใช้ Maven ดังนั้นฉันจึงลองสิ่งนี้ แต่ล้มเหลว:
<!DOCTYPE log4j:configuration SYSTEM "jar:file:${M2_REPO}/log4j/log4j/1.2.14/log4j-1.2.14.jar!/org/apache/log4j/xml/log4j.dtd">
โดยปกติ Eclipse จะรู้วิธีจัดการกับตัวแปร classpath แต่เหตุใดจึงไม่ได้ผล ฉันรู้ว่าการอ้างอิงใช้ไม่ได้ในระหว่างรันไทม์ แต่ก็ไม่ง่ายlog4j.dtd
(ถ้าฉันไม่ผิด) ก็ไม่น่าจะเป็นปัญหา
ใครช่วยให้ความกระจ่างเกี่ยวกับเรื่องนี้ได้ไหม?