Log4j ne pas écrire les logs dans le fichier
Je suis en utilisant slf4j sur log4j.
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>
La log4j.propriétés est dans le dossier WEB-INF et a le contenu suivant:
log4j.rootLogger=DEBUG, stdout, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\logs\\log4j.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Sur un autre environnement, avec la même version de Tomcat le même respository fonctionne bien, à l'enregistrement sur le fichier...
voir si cette question est utile pour vous : stackoverflow.com/questions/14544991/...
Vous pouvez poster votre élargi de la structure de projet ?
Avez-vous essayé d'ajouter -Dlog4j.débogage de votre JVM arguments pour obtenir log4j pour imprimer ses informations de démarrage? Sont votre journal des déclarations montrant dans le Système.? - Ils suivre le format spécifié dans votre fichier de config? Si vous modifiez le format dans le fichier de configuration, effectuez les déclarations dans le Système.changement aussi? S'ils ne le font pas, log4j n'est pas de trouver votre fichier de configuration.
Avez-vous essayé cette simple helloworld stackoverflow.com/questions/4311026/...
Vous pouvez poster votre élargi de la structure de projet ?
Avez-vous essayé d'ajouter -Dlog4j.débogage de votre JVM arguments pour obtenir log4j pour imprimer ses informations de démarrage? Sont votre journal des déclarations montrant dans le Système.? - Ils suivre le format spécifié dans votre fichier de config? Si vous modifiez le format dans le fichier de configuration, effectuez les déclarations dans le Système.changement aussi? S'ils ne le font pas, log4j n'est pas de trouver votre fichier de configuration.
Avez-vous essayé cette simple helloworld stackoverflow.com/questions/4311026/...
OriginalL'auteur Misca | 2015-08-13
Vous devez vous connecter pour publier un commentaire.
Vous avez dit que ce même fichier de configuration a été fonctionne bien sur un environnement différent. Pouvez-vous donner un peu de détails sur les différences entre les environnements. par exemple, sont-ils à la fois sur Windows? Le fait qu'il est fonctionne bien sur un autre environnement suggère que votre configuration est bien, mais il ya un problème avec votre environnement. Voici quelques points à vérifier:
Ne le tomcat processus des autorisations d'écriture dans ce fichier, à savoir les droits d'administrateur requis pour écrire à D:\logs\log4j.log?
Assurez-vous qu'il n'y a pas tous les fichiers temporaires qui traînent tomcat répertoires qui peuvent empêcher les modifications de prise d'effet. Pour être sûr, arrêter tomcat, supprimer l'élargissement de la guerre à partir de %CATALINA_HOME%\webapps, supprimez le contenu de %CATALINA_HOME%\temp et %CATALINA_HOME%\travail
Vérifier que vous n'avez pas d'autres fichiers de configuration de log4j sur votre chemin de classe, car ils peuvent écraser votre fichier log4j et de l'empêcher de prendre effet. Pour vérifier cela, vous pouvez essayez de supprimer temporairement votre log4j.fichier de propriétés pour voir si vous obtenez des messages disant que le système d'enregistrement n'est pas initialisé correctement.
OriginalL'auteur olambert
Peut-être votre log4j.propriétés n'est pas en cours de lecture. Si elle ne l'est pas, alors log4j va utiliser une configuration par défaut et vous pouvez même pas savoir à ce sujet.
Essayer de passer cette ligne
-Dlog4j.configuration=file:///D:/yourPathToFile/log4j.properties
en tant que machine virtuelle Argument dans votre configuration d'essai et voir si ça aide.
OriginalL'auteur Arqan
J'ai eu le même problème, en mettant l'log4j.journal de la source de travail. Je pensais que c'était arriver compilé dans le fichier EAR, mais ne l'était pas. En supposant que c'était par défaut.
OriginalL'auteur Nathan
Au lieu de:
utilisation:
OriginalL'auteur Daniel Boncioaga
Votre
log4j.properties
fichier doit être dansWEB-INF/classes
, pasWEB-INF
.WEB-INF
n'est pas dans le classpath de l'application web, maisWEB-INF/classes
est.OriginalL'auteur heenenee
Pour une Maven Projet Basé à garder votre log4j.propriétés dans src/main/resources
OriginalL'auteur karim mohsen
Essayer avec
Si elle ne fonctionne pas. S'il vous plaît mettez votre web.xml
OriginalL'auteur Tupac
Le problème peut venir quand vous n'ajoutez pas de log4j.les propriétés de fichier dans votre classpath. Pour résoudre le même suivre les étapes ci-dessous:-
OriginalL'auteur Goyal Vicky
J'ai eu le même problème. Il l'habitude de travailler il y a un moment mais ne fonctionne pas maintenant.
Je suppose que ce n'est pas un problème avec log4j2 ou slf4j(comme dans mon cas), mais avec le chemin relatif vers le fichier de configuration.
Si vous avez mis à jour java ou mise à jour de l'IDE ou modifié le système variable de chemin d'accès relatif ou des dossiers, alors votre problème est similaire à la mienne.
Des correctifs possibles/solutions -
sa construction.
la journalisation dans le code lui-même - Ce qui a fonctionné pour moi.
OriginalL'auteur Tushar
Essayez d'utiliser le système lorsque mentionner les chemins de fichiers sur windows. N'a pas besoin de parler de cette façon sur d'autres plateformes, mais sur windows, vous avez besoin de. J'ai observé des questions concernant les chemins d'accès aux fichiers sans régime.
OriginalL'auteur Drona
Donc j'ai eu un problème similaire avec le .fichier journal n'est pas écrit d'lors de l'écriture d'une application web sur le serveur tomcat. En fin de compte, j'ai changé le chemin d'accès au fichier pour être relatif à quelque chose comme
.\log.log
. Ensuite, j'ai remarqué que lorsque j'ai exécuté le programme en utilisant tomcat 7, j'ai trouvé le fichier de log dans le répertoire \bin au lieu de l' \répertoire des journaux à l'intérieur de mon installation de tomcat.OriginalL'auteur TheVoicedElk
OriginalL'auteur biology.info
J'ai eu le même problème. S'avère, j'ai une autre application web à l'intérieur de Tomcat qui contiennent un autre log4j.fichier de propriétés. Après la suppression de cette application, les choses se passent comme prévu
OriginalL'auteur duvo