Spring - Registrando com Log4J

Esta é uma funcionalidade Log4J muito fácil de usar dentro de aplicativos Spring. O exemplo a seguir o conduzirá por etapas simples para explicar a integração simples entre Log4J e Spring.

Presumimos que você já tenha log4Jinstalado em sua máquina. Se você não tiver, você pode baixá-lo emhttps://logging.apache.org/e simplesmente extraia o arquivo compactado em qualquer pasta. Vamos usar apenaslog4j-x.y.z.jar em nosso projeto.

Em seguida, vamos ter um Eclipse IDE funcionando e realizar as seguintes etapas para desenvolver um aplicativo da Web baseado em formulário dinâmico usando Spring Web Framework -

Passos Descrição
1 Crie um projeto com um nome SpringExample e crie um pacote com.tutorialspoint sob osrc pasta no projeto criado.
2 Adicione as bibliotecas Spring necessárias usando a opção Adicionar JARs externos, conforme explicado no capítulo Exemplo do Spring Hello World .
3 Adicione a biblioteca log4j log4j-xyzjar também em seu projeto usando Adicionar JARs externos .
4 Crie classes Java HelloWorld e MainApp no pacote com.tutorialspoint .
5 Crie o arquivo de configuração do Beans Beans.xml sob osrc pasta.
6 Crie o arquivo de configuração log4J log4j.properties sob osrc pasta.
7 A etapa final é criar o conteúdo de todos os arquivos Java e do arquivo de configuração do Bean e executar o aplicativo conforme explicado abaixo.

Aqui está o conteúdo de HelloWorld.java Arquivo

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

A seguir está o conteúdo do segundo arquivo 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");
   }
}

Você pode gerar debug e errormensagem de forma semelhante à que geramos mensagens de informação. Agora vamos ver o conteúdo deBeans.xml Arquivo

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

A seguir está o conteúdo de log4j.properties que define as regras padrão necessárias para Log4J produzir mensagens de 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

Quando terminar de criar os arquivos de configuração de código-fonte e bean, vamos executar o aplicativo. Se tudo estiver bem com seu aplicativo, isso imprimirá a seguinte mensagem no console do Eclipse -

Your Message : Hello World!

Se você verificar sua unidade C: \\, deverá encontrar seu arquivo de log log.out com várias mensagens de registro, como a seguir -

<!-- initialization log messages -->

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

API Jakarta Commons Logging (JCL)

Alternativamente, você pode usar Jakarta Commons Logging (JCL)API para gerar um log em seu aplicativo Spring. JCL pode ser baixado dohttps://jakarta.apache.org/commons/logging/. O único arquivo que tecnicamente precisamos deste pacote é o arquivo commons-logging-xyzjar , que precisa ser colocado em seu classpath de uma forma semelhante à que você colocou log4j-xyzjar no exemplo acima.

Para usar a funcionalidade de registro, você precisa de um objeto org.apache.commons.logging.Log e, em seguida, pode chamar um dos seguintes métodos de acordo com sua necessidade -

  • fatal (mensagem de objeto)
  • erro (mensagem de objeto)
  • advertir (mensagem de objeto)
  • info (mensagem de objeto)
  • depurar (mensagem de objeto)
  • trace (mensagem de objeto)

A seguir está a substituição de MainApp.java, que faz uso da 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");
   }
}

Você deve se certificar de que incluiu o arquivo commons-logging-xyzjar em seu projeto, antes de compilar e executar o programa.

Agora, mantendo o resto da configuração e do conteúdo inalterado no exemplo acima, se você compilar e executar seu aplicativo, obterá um resultado semelhante ao obtido usando a API Log4J.