web-dev-qa-db-fra.com

log4j: WARN Aucun appender n'a pu être trouvé pour le consignateur (fichier jar en cours d'exécution, pas application Web)

Tout d'abord, oui, j'ai lu les multiples questions et réponses sur ce sujet et je ne peux trouver aucune des solutions pour m'aider. Je n'utilise ni Tomcat ni JBoss et je n'ai pas de fichier web.xml À modifier. J'utilise Java 6.0 et log4j-1.2.8.jar.

Je crée un fichier jar exécutable avec IDEA IntelliJ avec des bibliothèques de jar empaquetées séparément et liées via le manifeste. J'exécute mon code sur un serveur Linux de la manière suivante:

me@server:/mydir> Java -jar code/myjar.jar
log4j:WARN No appenders could be found for logger (FactoredEventsForTrna).
log4j:WARN Please initialize the log4j system properly.

Mon fichier de configuration log4j (que j'ai placé à la fois dans mydir et mydir/code, Juste au cas où) serait:

## Logger configure file for myproject
log.dir=log/
datestamp=yyyy-MM-dd/HH:mm:ss.SSS
log4j.rootLogger=TRACE, file, proappender, console

log4j.appender.file=org.Apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=1GB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.File=log/mydebug.log
log4j.appender.file.threshold=TRACE
log4j.appender.file.layout=org.Apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: %c{2} - %m%n

log4j.appender.proappender=org.Apache.log4j.RollingFileAppender
log4j.appender.proappender.maxFileSize=5GB
log4j.appender.proappender.Threshold=INFO
log4j.appender.proappender.File=log/myinfo.log
log4j.appender.proappender.layout=org.Apache.log4j.PatternLayout
log4j.appender.proappender.layout.ConversionPattern=%d{${datestamp}} %5p: %c{2} - %m%n

log4j.appender.console=org.Apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout=org.Apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p: %c{2} - %m%n

Et j'ai créé le répertoire log/ Dans mydir et mydir/code, Encore une fois, juste au cas où.

Des idées?

53
Ina

Il existe de nombreuses options possibles pour spécifier votre configuration log4j. L'une consiste à nommer exactement le fichier "log4j.properties" et à le placer dans votre chemin de classe. Une autre solution consiste à le nommer comme vous le souhaitez et à ajouter une propriété System à la ligne de commande lorsque vous démarrez Java, comme suit:

-Dlog4j.configuration=file:///path/to/your/log4j.properties

Tous sont décrits ici http://logging.Apache.org/log4j/1.2/manual.html#defaultInit

59
John Watts

Solution

  1. Télécharger log4j.jar fichier
  2. Ajouter le log4j.jar fichier pour construire le chemin
  3. Appeler l'enregistreur par:

    private static org.Apache.log4j.Logger log 
        = Logger.getLogger(<class-where-this-is-used>.class);
    
  4. si les propriétés log4j n'existent pas, créez un nouveau fichier log4j.properties nouveau fichier dans le répertoire bin:

    /workspace/projectdirectory/bin/
    

Exemple de fichier log4j.properties

log4j.rootLogger=debug, stdout
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=%t %-5p %c{2} - %m%n 
43
mel3kings

J'avais déplacé mon log4j.properties dans le dossier des ressources et cela fonctionnait bien pour moi!

10
Gloria Rampur

Mec, j'ai eu le problème dans l'un de mes projets Eclipse, étonnamment, le problème était l'ordre des pots dans mon fichier .project. Croyez-le ou non!

3
MadMad666

Vous trouverez de log4j.properties dans solutions/exemples/ressources.

Si vous ne trouvez pas le fichier, je le mets ici:

#  Logging level
solr.log=logs/
log4j.rootLogger=INFO, file, CONSOLE

log4j.appender.CONSOLE=org.Apache.log4j.ConsoleAppender

log4j.appender.CONSOLE.layout=org.Apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x \u2013 %m%n

#- size rotation with log cleanup.
log4j.appender.file=org.Apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=4MB
log4j.appender.file.MaxBackupIndex=9

#- File to log to and log format
log4j.appender.file.File=${solr.log}/solr.log
log4j.appender.file.layout=org.Apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS}; %C; %m\n

log4j.logger.org.Apache.zookeeper=WARN
log4j.logger.org.Apache.hadoop=WARN

# set to INFO to enable infostream log messages
log4j.logger.org.Apache.solr.update.LoggingInfoStream=OFF

Cordialement

2
Carlos Espeleta

Déplacez votre fichier log4j.properties dans le dossier src. Ouvrez l'Explorateur Windows, accédez au répertoire dans lequel réside votre projet. Accédez au répertoire bin et supprimez tous les dossiers avec ceux-ci.

Maintenant dans Eclipse cliquez sur projet ----> nettoyer ----> OK

Cela l'obligerait à reconstruire le projet, tout le contenu supprimé du répertoire bin sera recréé.

J'ai pris le temps de comprendre cela. Parfois, cliquer directement sur le nettoyage ne fonctionne pas

1
ramit girdhar

placez le dossier contenant le fichier de propriétés pour la connexion Java. Vous pouvez l'ajouter en cliquant avec le bouton droit de la souris sur le projet ----> chemin de construction -----> configurer le chemin de construction ------> ajouter t

0
user3112014