2009-08-07 6 views
0

Dans mon application Web, j'initialise la connexion dans mon application Web en utilisant la fonction PropertyConfigurator.configure(filepath) dans une servlet qui est chargée au démarrage.log4j connexion à catalina.out dans unix au lieu du fichier journal

String log4jfile = getInitParameter("log4j-init-file"); 
if (log4jfile != null) { 
    String propfile = getServletContext().getRealPath(log4jfile); 
    PropertyConfigurator.configure(propfile); 

Je l'ai placé mes log4j.properties fichier dans WEB_INF/classes répertoire et je spécifiant le fichier en tant que

log4j.appender.rollingFile.File=${catalina.home}/logs/myapp.log 

Mon enregistreur racinaire a été initally configuré comme:

log4j.rootLogger=DEBUG, rollingFile,console 

(Je crois que l'attribut console enregistre également les instructions dans catalina.out)

Dans Windows, la journalisation semble se produire normalement avec les instructions figurant dans le fichier journal.

Dans unix mes instructions de journalisation sont redirigées vers catalina.out au lieu de mon fichier journal réel (qui contient uniquement les journaux du servlet d'initialisation). Tous les journaux suivants s'affichent dans catalina.out. Cela m'amène à croire que mon log4j n'est pas réglé correctement, mais je suis incapable de comprendre la cause. Quelqu'un pourrait-il m'aider à comprendre où le problème pourrait être.

Merci à l'avance, Fell

Répondre

1

Il peut s'agir d'un problème d'autorisations: vérifiez les propriétaires et les autorisations du répertoire $ {catalina.home}/logs.

0

Il dépendra du serveur que vous utilisez. Est-ce Tomcat? Est-ce la même version sur Windows et Linux?

+0

pouvez-vous expliquer quelles sont les différences entre les versions de Tomcat? –

0

Vérifiez si vous avez défini la variable d'environnement CATALINA_HOME dans votre machine. Vous pouvez le vérifier sous linux en tapant 'echo $ CATALINA_HOME'.

Questions connexes