Une introduction au système de journalisation pour java de Jakarta : log4j. L'accent est mis sur la façon de le configurer. (2005)

Un autre tuto (2006) sur log4j, appartenant au projet Apache Logging de la fondation Apache, celle-ci se révèle indispensable pour la mise au point de vos logiciels.

Encore un autre tuto (2002) Short introduction to log4j expliquant comment et simplement se servir de log4j sous Windows, Linux, Tomcat en rajoutant les options dans la VM :

Log4j par les arguments de la VM

Unix shell command

-Dlog4j.configuration=log4j.properties

Windows shell command

-Dlog4j.configuration=file:/c:/log4j.properties

Log4j par System.setProperty()

//		System.setProperty("log4j.configuration", "file://C:/workspaceEclipse/MonProjet/log4j/log4j.properties");	// KO
		System.setProperty("log4j.configuration", "file:/C:/workspaceEclipse/MonProjet/log4j/log4j.properties");		// OK
//		System.setProperty("log4j.configuration", "file:///workspaceEclipse/MonProjet/log4j/log4j.properties");		// OK

Fichier de paramétrage pour log4j

# Default Logging Configuration
log4j.rootLogger=TRACE, stdout

#to increase logging level
#log4j.logger.org.dcm4cheri=DEBUG

#to decrease logging level
#log4j.logger.org.dcm4cheri=ERROR
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %-5p %x - %m\n

Voyez également les articles :

log4j depuis Eclipse

Si vous avez des erreurs du genre :

log4j:WARN No appenders could be found for logger (com.placeoweb.ws.MonClient).
log4j:WARN Please initialize the log4j system properly.

Si vous perdez votre workspace, les argument de lancement de vos programmes depuis Eclipse sont enregistré dans :

C:\workspaceEclipse\.metadata\.plugins\org.eclipse.debug.core\.launches\MonProgramme.launch

Sont définis en XML et contiennent quelque chose comme :

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/OutilsEtTests/src/com/placeoweb/test/ws/MonProg.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.placeoweb.test.ws.MonProg"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="OutilsEtTests"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dlog4j.configuration=&quot;file:/C:/workspaceEclipse/OutilsEtTests/log4j/log4j.properties&quot;"/>
</launchConfiguration>

Qui correspond ici au rajout du VM argument

-Dlog4j.configuration="file:/C:/workspaceEclipse/OutilsEtTests/log4j/log4j.properties"

Contenu du fichier C:/workspaceEclipse/OutilsEtTests/log4j/log4j.properties :

[conf]
#http://beuss.developpez.com/tutoriels/java/jakarta/log4j/
#http://wiki.mediabox.fr/tutoriaux/java/log4j

#définition du niveau et des Appender du rootLogger
log4j.rootLogger=DEBUG, monAppender, stdout
 
#configuration de "monAppender"
#nous allons envoyer les messages dans la console de Tomcat
log4j.appender.monAppender=org.apache.log4j.ConsoleAppender
#log4j.appender.monAppender=org.jboss.logging.log4j.ConsoleAppender
 
#définition du Layout pour "monAppender"
log4j.appender.monAppender.layout=org.apache.log4j.PatternLayout
 
#définition du pattern d'affichage pour "monAppender"
#voici un exemple de sortie que l'on va obtenir : 2005-06-18 14:53:37 DEBUG [Main] Hello World
log4j.appender.monAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%c{1}] %m%n
#log4j.appender.monAppender.layout.ConversionPattern=[%c{1}] %m%n

# Si par exemple je veux modifier le niveau de logging des classes se trouvant 
# dans le package com.liguo.layout, 
# je n'ai qu'a ajouter la ligne suivante dans le fichier de configuration
#log4j.logger.com.liguo.layout=WARN
log4j.logger=INFO
log4j.logger.com=ALL
log4j.logger.com.placeoweb=ALL
log4j.logger.com.placeoweb.server=ALL
log4j.logger.com.placeoweb.server.Authentification=ALL
log4j.logger.org=INFO
#log4j.logger.org=ALL
#log4j.logger.org.apache.axis.transport.http.HTTPSender=DEBUG, axisLogFile
log4j.logger.org.apache.axis.transport.http.HTTPSender=DEBUG

## Default Logging Configuration
#
#log4j.rootLogger=INFO, stdout
#
##to increase logging level
#
##log4j.logger.org.dcm4cheri=DEBUG
#log4j.logger.com.placeoweb=DEBUG, stdout
#log4j.logger.com.placeoweb=DEBUG, stdout
#log4j.logger.com.placeoweb.Authentification=DEBUG, stdout
##to decrease logging level
#
##log4j.logger.org.dcm4cheri=ERROR
#
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#
#log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %-5p %x - %m\n

Log4j2

Pour utiliser le logger de Jboss/Wildfly

import org.jboss.logging.Logger;

Dans le "Run Configurations" de l’exécutable,

Arguments > VM arguments :

-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -Dlog4j2.debug -Dlog4j2.configurationFile=/D:/workspaceEclipse/java/OutilsEtTests/log4j/log4j.xml

Classpath > Boostrap Entries

D:\java\java.libs\apache-log4j-2.11.1-bin\log4j-api-2.11.1.jar
D:\java\java.libs\apache-log4j-2.11.1-bin\log4j-core-2.11.1.jar
D:\java\java.libs\apache-log4j-2.11.1-bin\log4j-jul-2.11.1.jar