Gestion des log, journalisation sur J2EE et Eclipse
Par PlaceOweb le jeudi, octobre 5 2006, 00:17 - JAVA - Lien permanent
Comment gérer les logs d'un serveur ? via syslog, mail, fichier et autres ...
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="file:/C:/workspaceEclipse/OutilsEtTests/log4j/log4j.properties""/>
</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