SLF4J - ตัวย้ายข้อมูล

หากคุณมีโปรเจ็กต์ใน Jakarta Commons Logging (JCL) หรือ log4j หรือ java.util.logging (JUL) และคุณต้องการแปลงโปรเจ็กต์เหล่านี้เป็น SLF4J คุณสามารถทำได้โดยใช้เครื่องมือโอนย้ายที่มีให้ในการแจกจ่าย SLF4J

กำลังเรียกใช้ SLF4J Migrator

SLF4J เป็นไฟล์ jar เพียงไฟล์เดียว (slf4j-migrator.jar) และคุณสามารถเรียกใช้โดยใช้คำสั่ง java –jar

ในการเรียกใช้ในพรอมต์คำสั่งเรียกดูไดเร็กทอรีที่คุณมีไฟล์ jar นี้และดำเนินการคำสั่งต่อไปนี้

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

สิ่งนี้เริ่มต้นตัวย้ายข้อมูลและคุณจะเห็นแอปพลิเคชันจาวาแบบสแตนด์อโลนเป็น -

ตามที่ระบุไว้ในหน้าต่างคุณต้องตรวจสอบประเภทของการโอนย้ายที่คุณต้องการทำและเลือกไดเร็กทอรีโปรเจ็กต์และคลิกที่ปุ่มโอนย้ายโปรเจ็กต์ไปยัง SLF4J

เครื่องมือนี้จะไปยังไฟล์ต้นทางที่คุณจัดเตรียมไว้และทำการปรับเปลี่ยนง่ายๆเช่นการเปลี่ยนบรรทัดการนำเข้าและการประกาศตัวบันทึกจากเฟรมเวิร์กการบันทึกปัจจุบันเป็น SLF4j

ตัวอย่าง

ตัวอย่างเช่นสมมติว่าเรามีตัวอย่าง log4j(2) โปรเจ็กต์ใน eclipse ด้วยไฟล์เดียวดังนี้ -

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

เพื่อย้ายตัวอย่าง log4j(2) โครงการ slf4j เราต้องตรวจสอบปุ่มตัวเลือก from log4j to slf4j และเลือกไดเร็กทอรีของโครงการและคลิก Exit เพื่อโยกย้าย

ผู้ย้ายเปลี่ยนรหัสด้านบนดังนี้ ที่นี่หากคุณสังเกตว่ามีการแก้ไขคำสั่งการนำเข้าและคนตัดไม้

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

เนื่องจากคุณมีอยู่แล้ว log4j.jar ในโครงการของคุณคุณต้องเพิ่ม slf4j-api.jar และ slf4jlog12.jar ไฟล์ไปยังโปรเจ็กต์เพื่อดำเนินการ

ข้อ จำกัด ของ SLF4JMigrator

ต่อไปนี้เป็นข้อ จำกัด ของตัวย้าย SLF4J

  • Migrator จะไม่แก้ไขบิลด์สคริปต์เช่นมดมาเวนและไอวี่ที่คุณต้องทำเอง

  • Migrator ไม่สนับสนุนข้อความอื่นนอกเหนือจากประเภท String

  • Migrator ไม่รองรับระดับ FATAL

  • ในขณะที่ทำงานกับ log4j ผู้ย้ายจะไม่โอนย้ายการเรียกไปยัง PropertyConfigurator หรือ DomConfigurator