Log4J n'est pas rien

J'ai juste pris une application web existante au travail qui est censé journal de son activité à l'aide de Log4J. J'ai configuré mon espace de travail exactement comme je l'avait dit et tout le reste (db connexion, authentification, etc...) fonctionne bien sauf que rien n'est écrit dans le fichier journal. D'autres applications similaires n'ont aucun problème de connexion.

J'ai regardé le WebSphere console au démarrage de l'application et il n'y a pas d'erreurs là-bas qui pourrait indiquer pourquoi Log4J n'est pas de l'exploitation forestière.

J'en ai parlé à un autre dev (qui a déjà travaillé sur cette application, mais pas pendant un certain temps et n'est plus par jour que je suis sur elle) qui a fait remarquer que c'était très étrange comportement, mais n'avait aucune idée de pourquoi il pourrait ne pas connecter de ne pas signaler d'éventuelles erreurs.

J'ai dépassé le fichier de configuration et les propriétés de fichier et tout semble OK. Je soupçonne que Log4J n'est jamais même la lecture de la log4j.xml mais je ne suis pas certain de qui. Il a été un moment depuis que j'ai travaillé avec Log4J - quelqu'un aurait-il quelques bons conseils sur le dépannage de ce type de problème?

PS: Il y a des exemples de cette application qui sont déployés à différents test/QA/prod serveurs et ces instances de tous les journaux de l'amende. C'est seulement sur les postes de travail locaux que l'enregistrement semble échouer en mode silencieux.


Mise à jour: de Sorte qu'il ne semble pas être un problème avec la façon dont l'application est en cours de déploiement.
J'ai changé le chargeur de classe mode de "Parent" Dernier " et je peux voir que le fichier Log4J est au moins en cours de lecture maintenant. Et la première action que je tente déclenche une ClassNotFoundException dire que org.apache.commons.logging.impl.Log4jFactory ne peut pas être trouvé.


2e mise à Jour:
J'ai remarqué quelque chose d'étranger... L'application a deux GUERRE projets - l'un d'eux est pour l'INTERFACE utilisateur et l'autre est pour certains services web. Le projet qui est pour l'INTERFACE utilisateur est connecté avec succès ses activités dans le fichier journal. Le projet de service web est celui qui échoue avec le ClassNotFoundException. Deux d'entre eux ont commons-logging.jar répertorié comme un JavaEE module de dépendance, et aucun d'entre eux ont un projet spécifique à la configuration de la journalisation (tous les fichiers de configuration sont dans un projet de Ressources).

Une différence majeure est que l'INTERFACE inclut certains dans-maison des cadres (pré-compilé comme Pots) que pourrait incluent déjà nécessaire configurations de journalisation et peut-être que c'est là où est la différence.

J'ai aussi essayé d'utiliser la réponse (un fichier nommé org.apache.commons.la journalisation.LogFactory dans le META-INF/services avec une ligne contenant: "org.apache.commons.la journalisation.impl.Log4jFactory") à partir de cette question: Websphere tous les journaux vont system-out.journal mais il ne semble pas aider.

Ce type d'enregistreur de données d'instance est-il? Comme dans RollingFileAppender
C'est un FileAppender.
Je voudrais commencer à introduire une erreur dans le fichier de configuration log4j de sorte à ce qu'il explose lors de l'initialisation, juste pour vérifier que le fichier est en cours de lecture.
Log4j est connu pour ne pas la lecture à partir du fichier de configuration que vous pensez que c'est la lecture. (Ou plutôt, mal écrit applications sont connus pour utilisation abusive de log4j de cette façon.) Ce que je voudrais faire est de placer des points d'arrêt dans la configuration log4j classes pour voir lequel est invoquée et où qu'ils lisent.
Excelent! vous avez trouvé l'un des plus étrange source d'erreurs dans les a ÉTÉ. Une solution rapide serait d'ajouter commons-logging pour votre application.

OriginalL'auteur FrustratedWithFormsDesigner | 2012-06-29