Spring - Journalisation avec Log4J

Il s'agit d'une fonctionnalité Log4J très facile à utiliser dans les applications Spring. L'exemple suivant vous guidera à travers des étapes simples pour expliquer l'intégration simple entre Log4J et Spring.

Nous supposons que vous avez déjà log4Jinstallé sur votre machine. Si vous ne l'avez pas, vous pouvez le télécharger à partir dehttps://logging.apache.org/et extrayez simplement le fichier compressé dans n'importe quel dossier. Nous n'utiliserons quelog4j-x.y.z.jar dans notre projet.

Ensuite, mettons en place un IDE Eclipse fonctionnel et suivons les étapes suivantes pour développer une application Web basée sur un formulaire dynamique à l'aide de Spring Web Framework -

Pas La description
1 Créez un projet avec un nom SpringExample et créez un package com.tutorialspoint sous lesrc dossier dans le projet créé.
2 Ajoutez les bibliothèques Spring requises à l'aide de l' option Ajouter des JAR externes comme expliqué dans le chapitre Exemple de Spring Hello World .
3 Ajoutez également la bibliothèque log4j log4j-xyzjar dans votre projet en utilisant Ajouter des fichiers JAR externes .
4 Créez les classes Java HelloWorld et MainApp sous le package com.tutorialspoint .
5 Créez le fichier de configuration Beans Beans.xml sous lesrc dossier.
6 Créez le fichier de configuration log4J log4j.properties sous lesrc dossier.
sept La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de configuration Bean et à exécuter l'application comme expliqué ci-dessous.

Voici le contenu de HelloWorld.java fichier

package com.tutorialspoint;

public class HelloWorld {
   private String message;
   
   public void setMessage(String message){
      this.message  = message;
   }
   public void getMessage() {
      System.out.println("Your Message : " + message);
   }
}

Voici le contenu du deuxième fichier MainApp.java

package com.tutorialspoint;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.apache.log4j.Logger;

public class MainApp {
   static Logger log = Logger.getLogger(MainApp.class.getName());
   
   public static void main(String[] args) {
      ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
      log.info("Going to create HelloWord Obj");
      HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
      obj.getMessage();
      
      log.info("Exiting the program");
   }
}

Vous pouvez générer debug et errormessage de la même manière que nous avons généré des messages d'information. Voyons maintenant le contenu deBeans.xml fichier

<?xml version = "1.0" encoding = "UTF-8"?>

<beans xmlns = "http://www.springframework.org/schema/beans"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

   <bean id = "helloWorld" class = "com.tutorialspoint.HelloWorld">
      <property name = "message" value = "Hello World!"/>
   </bean>

</beans>

Voici le contenu de log4j.properties qui définit les règles standard requises pour Log4J pour produire des messages de journal

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
# Set the name of the file
log4j.appender.FILE.File=C:\\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

Une fois que vous avez terminé de créer les fichiers de configuration source et bean, laissez-nous exécuter l'application. Si tout va bien avec votre application, cela imprimera le message suivant dans la console Eclipse -

Your Message : Hello World!

Si vous vérifiez votre lecteur C: \\, vous devriez trouver votre fichier journal log.out avec divers messages de journal, comme quelque chose comme suit -

<!-- initialization log messages -->

Going to create HelloWord Obj
Returning cached instance of singleton bean 'helloWorld'
Exiting the program

API Jakarta Commons Logging (JCL)

Vous pouvez également utiliser Jakarta Commons Logging (JCL)API pour générer un journal dans votre application Spring. JCL peut être téléchargé à partir duhttps://jakarta.apache.org/commons/logging/. Le seul fichier dont nous avons techniquement besoin dans ce paquet est le fichier commons-logging-xyzjar , qui doit être placé dans votre chemin de classe de la même manière que vous aviez mis log4j-xyzjar dans l'exemple ci-dessus.

Pour utiliser la fonctionnalité de journalisation, vous avez besoin d'un objet org.apache.commons.logging.Log , puis vous pouvez appeler l'une des méthodes suivantes selon vos besoins -

  • fatal (message d'objet)
  • erreur (message d'objet)
  • warn (Message d'objet)
  • info (message objet)
  • debug (message d'objet)
  • trace (message objet)

Voici le remplacement de MainApp.java, qui utilise l'API JCL

package com.tutorialspoint;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.apache.commons.logging. Log;
import org.apache.commons.logging. LogFactory;

public class MainApp {
   static Log log = LogFactory.getLog(MainApp.class.getName());

   public static void main(String[] args) {
      ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
      log.info("Going to create HelloWord Obj");
      HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
      obj.getMessage();

      log.info("Exiting the program");
   }
}

Vous devez vous assurer que vous avez inclus le fichier commons-logging-xyzjar dans votre projet, avant de compiler et d'exécuter le programme.

Maintenant, en gardant le reste de la configuration et du contenu inchangés dans l'exemple ci-dessus, si vous compilez et exécutez votre application, vous obtiendrez un résultat similaire à celui obtenu avec l'API Log4J.