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
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.
# 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
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
É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.).