SLF4J - Người di cư

Nếu bạn có một dự án ở Jakarta Commons Logging (JCL) hoặc, log4j hoặc, java.util.logging (JUL) và bạn muốn chuyển đổi các dự án này sang SLF4J, bạn có thể làm như vậy bằng cách sử dụng công cụ di chuyển được cung cấp trong bản phân phối SLF4J.

Chạy SLF4J Migrator

SLF4J là một tệp jar đơn đơn giản (slf4j-migrator.jar) và bạn có thể chạy nó bằng lệnh java –jar.

Để chạy nó, trong dấu nhắc lệnh, hãy duyệt qua thư mục mà bạn có tệp jar này và thực hiện lệnh sau.

java -jar slf4j-migrator-1.8.0-beta2.jar
Starting SLF4J Migrator

Thao tác này khởi động trình di chuyển và bạn có thể thấy một ứng dụng java độc lập như sau:

Như được chỉ định trong cửa sổ, bạn cần kiểm tra loại di chuyển bạn muốn thực hiện và chọn thư mục dự án và nhấp vào nút Di chuyển dự án sang SLF4J.

Công cụ này chuyển đến các tệp nguồn mà bạn cung cấp và thực hiện các sửa đổi đơn giản như thay đổi các dòng nhập và khai báo trình ghi từ khung ghi nhật ký hiện tại sang SLF4j.

Thí dụ

Ví dụ: giả sử chúng tôi có một mẫu log4j(2) dự án trong nhật thực với một tệp duy nhất như sau:

import org.apache.log4j.Logger;
import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class Sample {
   /* Get actual class name to be printed on */
   static Logger log = Logger.getLogger(Sample.class.getName());

   public static void main(String[] args)throws IOException,SQLException {
      log.debug("Hello this is a debug message");
      log.info("Hello this is an info message");
   }
}

Để di chuyển mẫu log4j(2) dự án lên slf4j, chúng ta cần kiểm tra nút radio from log4j to slf4j và chọn thư mục của dự án và nhấp vào Exit để di cư.

Trình di chuyển đã thay đổi mã trên như sau. Ở đây nếu bạn quan sát thấy các câu lệnh nhập và trình ghi nhật ký đã được sửa đổi.

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class Sample {
   static Logger log = LoggerFactory.getLogger(Sample.class.getName());
   public static void main(String[] args)throws IOException,SQLException {
      log.debug("Hello this is a debug message");
      log.info("Hello this is an info message");
   }
}

Vì bạn đã có log4j.jar trong dự án của bạn, bạn cần thêm slf4j-api.jarslf4jlog12.jar tệp vào dự án để thực thi nó.

Hạn chế của SLF4JMigrator

Sau đây là những hạn chế của bộ di chuyển SLF4J.

  • Migrator sẽ không sửa đổi các tập lệnh xây dựng như kiến, maven và cây thường xuân mà bạn cần phải tự làm.

  • Migrator không hỗ trợ các thông báo khác với loại Chuỗi.

  • Migrator không hỗ trợ mức FATAL.

  • Trong khi làm việc với log4j, bộ di chuyển sẽ không di chuyển các cuộc gọi đến PropertyConfigurator hoặc DomConfigurator.