ปรับแต่ง iOS Logging

การบันทึก iOS ได้รับการจัดการโดย IOSLogHandler.java ซึ่งจะลบล้าง java.util.logging.Handler โดยตั้งเป็นค่าเริ่มต้นได้โดยการเพิ่มทรัพยากร logging.properties ลงในแอป ดังที่แสดงใน LogManager

การเปลี่ยนเครื่องจัดการการบันทึกแบบเป็นโปรแกรม

หากต้องการเพิ่มเครื่องจัดการการบันทึกทางโปรแกรม ให้ใช้โค้ดเดียวกับที่คุณใช้เปลี่ยนแปลงใน Java

LogManager.getLogger("").addHandler(myHandler);

หากคุณไม่ต้องการให้ตัวแฮนเดิลที่มีอยู่ทำงานด้วย ให้นำเครื่องจัดการที่มีอยู่ออกก่อนโดยใช้คำสั่งต่อไปนี้

Logger logger = LogManager.getLogger("");
for (Handler h : logger.getHandlers()) {
  logger.removeHandler(h);
}

การเปลี่ยนเครื่องจัดการการบันทึกด้วยไฟล์พร็อพเพอร์ตี้

  1. หากต้องการเปลี่ยนเครื่องจัดการการบันทึกเริ่มต้นโดยใช้ไฟล์ Logging.properties คุณต้องระบุเครื่องจัดการดังกล่าว (เช่นเดียวกับแอปพลิเคชัน Java) ดังนี้

    handlers=mycompany.mylogger.MyIOSLogHandler
    java.util.logging.ConsoleHandler.level=ALL
    

    ไฟล์นี้จะมีชื่อใดก็ได้ ตราบใดที่มีการใช้ชื่อนั้นในระหว่างการโหลด

  2. จากนั้นเพิ่มไฟล์ Logging.properties เป็นทรัพยากร iOS ให้กับโปรเจ็กต์

  3. แอปพลิเคชัน J2ObjC จะต้องโหลดไฟล์คุณสมบัติอย่างชัดเจน ซึ่งต่างจากแอปพลิเคชัน Java

    static {
      // Fetch a logger in case the following leaves logging in a bad state, such
      // as not adding the logging.properties resource or using a different name.
      Logger log = Logger.getLogger("configLogger");
      try {
        InputStream loggingProperties = SomeClass.class.getResourceAsStream("logging.properties");
        LogManager.getLogManager().readConfiguration(loggingProperties);
      } catch (IOException exception) {
        log.log(Level.SEVERE, "Error in loading configuration", exception);
      }
    }