Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

Platform Logging API ใน Java 9 คืออะไร

ใน Java 9 Platform Logging API ใช้ log messages ด้วย service interface สำหรับ consumer ของข้อความเหล่านั้น การ implement ของ LoggerFinder ถูกโหลดด้วย java.util.ServiceLoader API โดยใช้ System ClassLoader จากการ implement นี้ แอปพลิเคชันสามารถเสียบ logging backend ภายนอกของตัวเองได้โดยไม่ต้องตั้งค่า java.util.logging

สามารถส่งชื่อคลาสหรือโมดูลให้ LoggerFinder เพื่อให้รู้ว่าจะคืน logger ไหน

ตัวอย่าง LoggerFinder Implementation

public class MyLoggerFinder extends LoggerFinder {
    @Override
    public Logger getLogger(String name, Module module) {
        // return a logger depends on name/module
    }
}

หากไม่พบ concrete implementation จะใช้ default LoggerFinder implementation ได้ logger ที่สร้างจาก LoggerFinder โดยใช้ factory methods ของคลาส System

Factory Methods ใน System Class

public class System {
    System.Logger getLogger(String name) { }
    System.Logger getLogger(String name, ResourceBundle bundle) { }
}

System.Logger Interface

System.Logger เป็น interface สำหรับ logging operations:

public interface Logger {
    void log(Level level, ResourceBundle bundle, String msg, Throwable thrown);
    void log(Level level, ResourceBundle bundle, String format, Object... params);
    boolean isLoggable(Level level);
}

ระดับ Log Level

  • ALL - ทุกระดับ
  • TRACE - รายละเอียดมากที่สุด
  • DEBUG - ข้อมูล debug
  • INFO - ข้อมูลทั่วไป
  • WARNING - คำเตือน
  • ERROR - ข้อผิดพลาด
  • OFF - ปิด logging

Platform Logging API ทำให้แอปพลิเคชันใช้ logging framework ใดก็ได้ (SLF4J, Log4j2, Logback) โดยไม่ผูกมัดกับ java.util.logging