Spring - Ghi nhật ký với Log4J

Đây là một chức năng Log4J rất dễ sử dụng bên trong các ứng dụng Spring. Ví dụ sau sẽ hướng dẫn bạn qua các bước đơn giản để giải thích sự tích hợp đơn giản giữa Log4J và Spring.

Chúng tôi cho rằng bạn đã có log4Jđược cài đặt trên máy của bạn. Nếu bạn chưa có thì bạn có thể tải xuống từhttps://logging.apache.org/và chỉ cần giải nén tệp đã nén trong bất kỳ thư mục nào. Chúng tôi sẽ chỉ sử dụnglog4j-x.y.z.jar trong dự án của chúng tôi.

Tiếp theo, hãy để chúng tôi có một IDE Eclipse đang hoạt động và thực hiện các bước sau để phát triển một Ứng dụng Web dựa trên Biểu mẫu Động bằng cách sử dụng Spring Web Framework -

Các bước Sự miêu tả
1 Tạo một dự án với tên SpringExample và tạo một gói com.tutorialspoint trongsrc thư mục trong dự án đã tạo.
2 Thêm các thư viện Spring bắt buộc bằng cách sử dụng tùy chọn Thêm JAR bên ngoài như được giải thích trong chương Ví dụ về Spring Hello World .
3 Thêm thư viện log4j log4j-xyzjar cũng như trong dự án của bạn bằng cách sử dụng Thêm JAR bên ngoài .
4 Tạo các lớp Java HelloWorldMainApp theo gói com.tutorialspoint .
5 Tạo tệp cấu hình Đậu Beans.xml trongsrc thư mục.
6 Tạo tệp cấu hình log4J log4j.properties trongsrc thư mục.
7 Bước cuối cùng là tạo nội dung của tất cả các tệp Java và tệp Cấu hình Bean và chạy ứng dụng như được giải thích bên dưới.

Đây là nội dung của HelloWorld.java tập tin

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

Sau đây là nội dung của tệp thứ hai 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");
   }
}

Bạn có thể tạo debugerrorthông báo theo cách tương tự như chúng tôi đã tạo thông báo thông tin. Bây giờ chúng ta hãy xem nội dung củaBeans.xml tập tin

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

Sau đây là nội dung của log4j.properties xác định các quy tắc tiêu chuẩn cần thiết cho Log4J để tạo thông báo nhật ký

# 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

Khi bạn đã hoàn tất việc tạo các tệp cấu hình nguồn và bean, hãy để chúng tôi chạy ứng dụng. Nếu mọi thứ đều ổn với ứng dụng của bạn, điều này sẽ in ra thông báo sau trong bảng điều khiển Eclipse:

Your Message : Hello World!

Nếu bạn kiểm tra ổ C: \\, thì bạn sẽ tìm thấy tệp nhật ký của mình log.out với các thông báo nhật ký khác nhau, như sau:

<!-- initialization log messages -->

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

API ghi nhật ký Jakarta Commons (JCL)

Ngoài ra bạn có thể sử dụng Jakarta Commons Logging (JCL)API để tạo nhật ký trong ứng dụng Spring của bạn. JCL có thể được tải xuống từhttps://jakarta.apache.org/commons/logging/. Tệp duy nhất về mặt kỹ thuật mà chúng tôi cần từ gói này là tệp commons-logging-xyzjar , tệp này cần được đặt trong classpath của bạn theo cách tương tự như bạn đã đặt log4j-xyzjar trong ví dụ trên.

Để sử dụng chức năng ghi nhật ký, bạn cần một đối tượng org.apache.commons.logging.Log và sau đó, bạn có thể gọi một trong các phương thức sau theo yêu cầu của bạn:

  • gây tử vong (Thông báo đối tượng)
  • lỗi (Thông báo đối tượng)
  • cảnh báo (Thông báo đối tượng)
  • thông tin (Đối tượng tin nhắn)
  • gỡ lỗi (Thông báo đối tượng)
  • dấu vết (Thông điệp đối tượng)

Sau đây là sự thay thế của MainApp.java, sử dụng 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");
   }
}

Bạn phải đảm bảo rằng bạn đã bao gồm tệp commons-logging-xyzjar trong dự án của mình, trước khi biên dịch và chạy chương trình.

Bây giờ giữ nguyên cấu hình và nội dung còn lại trong ví dụ trên, nếu bạn biên dịch và chạy ứng dụng của mình, bạn sẽ nhận được kết quả tương tự như những gì bạn nhận được khi sử dụng API Log4J.