2009-10-02 6 views
0

Existe-t-il une méthode correcte d'utilisation de Log4j Logger avec Common ClassLoader, et non avec ClassLoader basé sur Web-App, à savoir un seul fichier log4j.jar pour toutes les applications Web déployées? Lorsque je dépose un fichier log4j.jar dans le répertoire lib de la bibliothèque, log4j obtient un premier fichier loj4j.properties pour n'importe quelle application et l'utilise uniquement. Tous les autres loj4j.properties (d'autres applications) sont ignorés. Est-il possible de dire log4j pour renvoyer une fabrique de journaux séparée pour chaque application avec leurs propriétés?Log4j unique entre les applications Web Tomcat6

Répondre

1

Pas de la façon dont je pense que vous voulez dire, car les enregistreurs de chaque webapp devraient être complètement indépendants des enregistreurs dans d'autres applications Web. Étant donné que les référentiels de journalisation sont des singletons, cela ne peut être fait que s'ils sont gérés par des chargeurs de classe distincts, c'est-à-dire les chargeurs de classe webapp. Notez également qu'en général (bien que ce ne soit pas le cas pour vous), différentes applications web ont des cycles de vie différents, ce qui signifie que Tomcat peut avoir à supporter webapp A en utilisant une version de log4j en même temps que webapp B, qui utilise une version différente de log4j.

+0

Oui, je suis entièrement d'accord sauf une chose. Je héberge environ 60 webapps sur une instance tomcat, et quand chaque webapp charge une instance log4j distincte - je rencontre un problème avec l'espace PermGen. Le serveur a seulement 512 Mo de mémoire :( –

Questions connexes