Tôi đã sử dụng log4j cho khá trong một giờ và tôi thường sử dụng này ở phía trên cùng của log4j.xml (có lẽ cũng giống như nhiều người khác và theo Google đây là các cách để làm điều đó):
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
Rõ ràng là điều này đang hoạt động, tuy nhiên Eclipse không cung cấp trợ giúp về ngữ cảnh nhạy cảm để viết XML và tất cả. Hơn nữa, nó luôn hiển thị cảnh báo rằng nó không tìm thấy log4j.dtd
. Bây giờ tôi tò mò làm thế nào để sửa chữa điều này.
Tôi đã thử một vài thứ và những thứ này hoạt động:
<!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">
Như bạn có thể thấy ở trên, chúng tôi đang sử dụng Maven. Do đó, tôi đã thử điều này, nhưng nó không thành công:
<!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 thường biết cách xử lý các biến classpath, nhưng tại sao điều này không hoạt động? Tôi biết rằng tham chiếu sẽ không hoạt động trong thời gian chạy, nhưng cũng không đơn giản log4j.dtd
(nếu tôi không sai), vì vậy đó không phải là vấn đề.
Bất cứ ai có thể vui lòng làm sáng tỏ điều này?