2012-07-02 4 views
0

j'utilise log4j comme ma bibliothèque de l'exploitation forestière, et je veux le fichier journal généré, à l'intérieur de mon application web, donc voici les bocaux J'UTILISE:Impossible de créer un fichier journal log4j dans mon application web

<dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.6.4</version> 
    </dependency> 


    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.6.4</version> 
    </dependency> 

et suivants sont la configuration log4j:

log4j.rootLogger=DEBUG, stdout, R 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 

# Pattern to output the caller's file name and line number. 
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n 

log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=mylog.log 

log4j.appender.R.MaxFileSize=10000KB 

log4j.appender.R.MaxBackupIndex=3 

log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 

# Control/Limit integrated frameworks logging messages 
log4j.logger.org.springframework=ERROR 

problème: quand j'utiliser le chemin du système de fichiers comme log4j.appender.R.File=${user.home}/mylog.log le fichier est créé avec succès sans problème, mais en essayant d'utiliser un parent chemin comme: log4j.appender.R.File=mylog.log le fichier n'est pas créé.

s'il vous plaît aviser comment résoudre ce problème.

+1

L'application n'a probablement pas l'autorisation d'écrire dans le répertoire à partir duquel elle est exécutée. Ce qui est généralement une bonne chose. –

Répondre

3

Puisque vous avez mentionné une application Web dans le répertoire de travail actuel serait le web racine du conteneur -comme TOMCAT_HOME. Le chemin du fichier journal sera donc relatif à votre conteneur Web et non à votre application Web.

La plupart des conteneurs Web limitent également l'écriture de fichiers dans les répertoires d'applications Web. Il pourrait y avoir des configurations pour le faire - pas sûr.

1

Vérifiez les autorisations du répertoire de travail actuel. Assurez-vous que l'utilisateur qui exécute le processus Java a un accès en lecture et en écriture.

Pour déterminer le répertoire de travail, exécutez d'une classe dans le contexte de l'application Web (par exemple un Servlet ou un ServletContextListener):

System.out.println("Working Directory = " + System.getProperty("user.dir")); 
Questions connexes