He estado usando log4j durante bastante tiempo y generalmente lo uso en la parte superior de log4j.xml (probablemente como muchos otros y, según Google, esta es la forma de hacerlo):
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
Obviamente, esto está funcionando, sin embargo, Eclipse no proporciona su ayuda contextual para escribir el XML y todo. Además, siempre muestra una advertencia de que no encuentra el log4j.dtd
. Ahora tengo curiosidad por saber cómo solucionar este problema.
Probé algunas cosas y estas funcionan:
<!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">
Como puede ver desde arriba, estamos usando Maven. Por lo tanto, probé esto, pero falla:
<!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 generalmente sabe cómo lidiar con las variables de classpath, pero ¿por qué no funciona? Sé que la referencia no funcionará durante el tiempo de ejecución, pero tampoco una simple log4j.dtd
(si no me equivoco), por lo que no debería ser un problema.
¿Alguien puede arrojar algo de luz sobre esto?