Primavera: registrazione con Log4J

Questa è una funzionalità Log4J molto facile da usare all'interno delle applicazioni Spring. Il seguente esempio ti guiderà attraverso semplici passaggi per spiegare la semplice integrazione tra Log4J e Spring.

Diamo per scontato che tu l'abbia già fatto log4Jinstallato sulla tua macchina. Se non ce l'hai, puoi scaricarlo dahttps://logging.apache.org/ed estrai semplicemente il file zippato in qualsiasi cartella. Useremo sololog4j-x.y.z.jar nel nostro progetto.

Quindi, disponiamo di un IDE Eclipse funzionante e intraprendiamo i seguenti passaggi per sviluppare un'applicazione Web dinamica basata su form utilizzando Spring Web Framework:

Passi Descrizione
1 Crea un progetto con un nome SpringExample e crea un pacchetto com.tutorialspoint sottosrc cartella nel progetto creato.
2 Aggiungere le librerie Spring richieste utilizzando l' opzione Aggiungi JAR esterni come spiegato nel capitolo Esempio Spring Hello World .
3 Aggiungi anche la libreria log4j log4j-xyzjar nel tuo progetto utilizzando Aggiungi JAR esterni .
4 Crea classi Java HelloWorld e MainApp nel pacchetto com.tutorialspoint .
5 Crea il file di configurazione Beans Beans.xml sottosrc cartella.
6 Crea il file di configurazione log4J log4j.properties sottosrc cartella.
7 Il passaggio finale consiste nel creare il contenuto di tutti i file Java e nel file di configurazione Bean ed eseguire l'applicazione come spiegato di seguito.

Ecco il contenuto di HelloWorld.java file

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);
   }
}

Di seguito è riportato il contenuto del secondo file 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");
   }
}

Puoi generare debug e errormessaggio in modo simile a quando abbiamo generato messaggi informativi. Vediamo ora il contenuto diBeans.xml file

<?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>

Di seguito è riportato il contenuto di log4j.properties che definisce le regole standard richieste a Log4J per produrre messaggi di log

# 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

Una volta terminata la creazione dei file di configurazione dei bean e dei sorgenti, eseguiamo l'applicazione. Se tutto va bene con la tua applicazione, verrà stampato il seguente messaggio nella console Eclipse:

Your Message : Hello World!

Se controlli l'unità C: \\, dovresti trovare il file di registro log.out con vari messaggi di registro, come qualcosa come segue:

<!-- initialization log messages -->

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

API Jakarta Commons Logging (JCL)

In alternativa puoi usare Jakarta Commons Logging (JCL)API per generare un registro nella tua applicazione Spring. JCL può essere scaricato dahttps://jakarta.apache.org/commons/logging/. L'unico file di cui abbiamo bisogno tecnicamente da questo pacchetto è il file commons-logging-xyzjar , che deve essere inserito nel tuo classpath in modo simile a come avevi inserito log4j-xyzjar nell'esempio precedente.

Per utilizzare la funzionalità di registrazione è necessario un oggetto org.apache.commons.logging.Log e quindi è possibile chiamare uno dei seguenti metodi in base alle proprie esigenze:

  • fatale (messaggio oggetto)
  • errore (messaggio oggetto)
  • warn (messaggio oggetto)
  • info (messaggio oggetto)
  • debug (messaggio oggetto)
  • trace (messaggio oggetto)

Di seguito è riportata la sostituzione di MainApp.java, che utilizza 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");
   }
}

Devi assicurarti di aver incluso il file commons-logging-xyzjar nel tuo progetto, prima di compilare ed eseguire il programma.

Ora mantenendo invariato il resto della configurazione e del contenuto nell'esempio sopra, se compili ed esegui la tua applicazione, otterrai un risultato simile a quello ottenuto usando l'API Log4J.