Wiosna - logowanie za pomocą Log4J

Jest to bardzo łatwa w użyciu funkcjonalność Log4J w aplikacjach Springa. Poniższy przykład poprowadzi Cię przez proste kroki, aby wyjaśnić prostą integrację między Log4J i Spring.

Zakładamy, że już masz log4Jzainstalowany na twoim komputerze. Jeśli go nie masz, możesz go pobrać zhttps://logging.apache.org/i po prostu wyodrębnij spakowany plik w dowolnym folderze. Użyjemy tylkolog4j-x.y.z.jar w naszym projekcie.

Następnie przygotujmy działające środowisko Eclipse IDE i podejmijmy następujące kroki, aby opracować aplikację internetową opartą na formularzu dynamicznym przy użyciu Spring Web Framework -

Kroki Opis
1 Utwórz projekt o nazwie SpringExample i utwórz pakiet com.tutorialspoint w obszarzesrc folder w utworzonym projekcie.
2 Dodaj wymagane biblioteki Spring za pomocą opcji Dodaj zewnętrzne pliki JAR , jak wyjaśniono w rozdziale Spring Hello World Example .
3 Dodaj do projektu bibliotekę log4j log4j-xyzjar, korzystając z opcji Dodaj zewnętrzne pliki JAR .
4 Utwórz klasy Java HelloWorld i MainApp w pakiecie com.tutorialspoint .
5 Utwórz plik konfiguracyjny Beans Beans.xml w obszarzesrc teczka.
6 Utwórz plik konfiguracyjny log4J log4j.properties wsrc teczka.
7 Ostatnim krokiem jest utworzenie zawartości wszystkich plików Java i pliku konfiguracyjnego Bean i uruchomienie aplikacji, jak wyjaśniono poniżej.

Oto treść HelloWorld.java plik

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

Poniżej znajduje się zawartość drugiego pliku 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");
   }
}

Możesz generować debug i errorwiadomość w podobny sposób jak wygenerowaliśmy wiadomości informacyjne. Przyjrzyjmy się teraz zawartościBeans.xml plik

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

Poniżej znajduje się treść log4j.properties który definiuje standardowe reguły wymagane dla Log4J do tworzenia komunikatów dziennika

# 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

Po utworzeniu plików źródłowych i konfiguracyjnych komponentów bean uruchom aplikację. Jeśli wszystko jest w porządku z Twoją aplikacją, spowoduje to wyświetlenie następującego komunikatu w konsoli Eclipse -

Your Message : Hello World!

Jeśli sprawdzisz dysk C: \\, powinieneś znaleźć swój plik dziennika log.out z różnymi komunikatami dziennika, na przykład następującymi -

<!-- initialization log messages -->

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

Jakarta Commons Logging (JCL) API

Alternatywnie możesz użyć Jakarta Commons Logging (JCL)API do generowania dziennika w Twojej aplikacji Spring. JCL można pobrać zhttps://jakarta.apache.org/commons/logging/. Jedynym plikiem, którego technicznie potrzebujemy z tego pakietu, jest plik commons-logging-xyzjar , który należy umieścić w ścieżce klas w podobny sposób, jak umieściłeś log4j-xyzjar w powyższym przykładzie.

Aby skorzystać z funkcji rejestrowania, potrzebujesz obiektu org.apache.commons.logging.Log, a następnie możesz wywołać jedną z następujących metod zgodnie z wymaganiami -

  • fatal (komunikat o obiekcie)
  • błąd (komunikat o obiekcie)
  • ostrzeżenie (wiadomość o obiekcie)
  • info (wiadomość o obiekcie)
  • debugowanie (komunikat o obiekcie)
  • trace (komunikat o obiekcie)

Poniżej przedstawiono zastąpienie pliku MainApp.java, który wykorzystuje interfejs JCL API

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

Musisz upewnić się, że dołączyłeś do projektu plik commons-logging-xyzjar, przed skompilowaniem i uruchomieniem programu.

Pozostawiając resztę konfiguracji i zawartości bez zmian w powyższym przykładzie, jeśli skompilujesz i uruchomisz swoją aplikację, uzyskasz podobny wynik, jak ten, który otrzymałeś przy użyciu Log4J API.