pourquoi est-Log4j essayer de trouver de log4j.dtd
Je suis une exception, lorsque j'essaie d'exécuter mon application (dans eclipse) se plaindre de log4j.dtd. Suis-je fait pour avoir un fichier dtd, si j'utilise le xml de configuration de log4j?
Caused by: java.io.FileNotFoundException:
C:\data\workspace\LDICommon_Trunk\resources\log4j.dtd (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
- Pourriez-vous inclure plus de votre stack trace, parce que log4j utilise normalement un EntityResolver qui permet le chargement de la log4j dtd depuis le classpath (et donc de la log4j fichier jar)
Vous devez vous connecter pour publier un commentaire.
Si vous êtes à l'aide de XML log4j, alors oui, vous aurez besoin du fichier DTD. Copiez ce fichier DTD dans votre espace de travail: http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd
Assurez-vous qu'il se trouve dans le même répertoire que votre log4j fichier XML.
source
Si vous utilisez un fichier XML en tant que fichier de configuration log4j, regardez dans la balise DOCTYPE et vous trouverez quelque chose comme ceci:
Si vous avez besoin de ce fichier DTD, parce que c'est la définition de la structure de votre document XML.
De toute façon, vous pouvez utiliser un fichier de propriétés de configuration de fichier, au lieu d'un XML.
MODIFIER: je viens de trouver une corrélation question qui pourrait vous aider: Eclipse: le Référencement de log4j.dtd dans log4j.xml
DOCTYPE
tag ou seulementSYSTEM "log4j.dtd"
partiePour les personnes venant sur ce, dès maintenant,
log4j.dtd
est inclus danslog4j.jar
(dans la version 1.2.14 au moins).Comme
log4j.dtd
est recherché dans votre classpath (voir cette autre question) vous ne devriez pas besoin de plus.Ok, j'ai eu la réponse à mon problème, il s'avère log4j n'a pas besoin du fichier dtd être situé dans votre projet ou votre machine.
L'erreur a été causée par l'éclipse d'essayer d'exécuter la log4j.xml fichier lorsque j'ai lancé une course.
Auparavant eclipse utilisé pour exécuter la dernière course de configuration, maintenant, il essaie d'exécuter tout ce qui est ouvert et mis au point dans l'éditeur. Et il s'est trouvé que mon log4j.xml fichier de configuration a été ouvert, et quelle que soit eclipse utilise pour exécuter un fichier xml a été d'essayer d'aller à la dtd comme par le fichier de configuration.
De toute façon, merci beaucoup pour votre aide.
j'ai eu ce problème avec un pot de l'application et fini par mettre log4j.dtd dans le répertoire de la hiérarchie et de l'alerter/messages d'erreur a disparu:
org/apache/log4j/xml/log4j.dtd
btw c'est l'emplacement dans le log4j.jar fichier