web-dev-qa-db-fra.com

comment faire log4j pour écrire sur la console aussi

Existe-t-il un moyen de demander à log4j d'écrire son journal dans le fichier et dans la console? merci il y a mes propriétés:

log4j.rootLogger=DEBUG,console,R
log4j.rootLogger=INFO, FILE

log4j.appender.CONSOLE=org.Apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.Apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n

log4j.appender.FILE=org.Apache.log4j.RollingFileAppender
log4j.appender.FILE.File=log4j.log
log4j.appender.FILE.MaxFileSize=512KB
log4j.appender.FILE.MaxBackupIndex=3
log4j.appender.FILE.layout=org.Apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n
58
fatnjazzy

La définition de votre enregistreur racine est un peu confuse. Voir le documentation log4j .

Ceci est un fichier de propriétés standard Java, ce qui signifie que les lignes sont traitées comme des paires clé = valeur. Votre deuxième log4j.rootLogger La ligne remplace la première, ce qui explique pourquoi vous ne voyez rien sur l’appender console.

Vous devez fusionner vos deux rootLogger définitions en une. On dirait que vous essayez de faire en sorte que les messages DEBUG soient envoyés à la console et les messages INFO au fichier. L'enregistreur racine ne peut avoir qu'un niveau . Vous devez donc modifier votre configuration pour que les appenders disposent des niveaux appropriés.

Bien que je n’ai pas vérifié que c’est correct, je suppose que cela ressemblera à quelque chose comme ceci:

log4j.rootLogger=DEBUG,console,file
log4j.appender.console=org.Apache.log4j.ConsoleAppender
log4j.appender.file=org.Apache.log4j.RollingFileAppender

Notez que vous avez également une erreur de casse: la console est en minuscule à un endroit et en majuscule à un autre.

67
Steven Schlansker

Votre fichier log4j devrait ressembler à quelque chose comme ci-dessous lire les commentaires.

# Define the types of logger and level of logging    
log4j.rootLogger = DEBUG,console, FILE

# Define the File appender    
log4j.appender.FILE=org.Apache.log4j.FileAppender    

# Define Console Appender    
log4j.appender.console=org.Apache.log4j.ConsoleAppender    

# Define the layout for console appender. If you do not 
# define it, you will get an error    
log4j.appender.console.layout=org.Apache.log4j.PatternLayout

# Set the name of the file    
log4j.appender.FILE.File=log.out

# Set the immediate flush to true (default)    
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode    
log4j.appender.FILE.Threshold=debug

# Set the append to false, overwrite    
log4j.appender.FILE.Append=false

# Define the layout for file appender    
log4j.appender.FILE.layout=org.Apache.log4j.PatternLayout    
log4j.appender.FILE.layout.conversionPattern=%m%n
33
ramit girdhar

Cela fonctionne bien pour la console en mode débogage

log4j.appender.console=org.Apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.Apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n
6
Brijendra Verma

Écrivez le logger racine comme ci-dessous pour vous connecter à la fois à la console et au fichier.

log4j.rootLogger = ERREUR, console, FICHIER

Et écrivez les définitions respectives telles que Cible, Mise en page et ConversionPattern (MaxFileSize pour fichier, etc.).

0