התאמה אישית של רישום ביומן iOS

הרישום ביומן של iOS מטופל על ידי IOSLogHandler.java, שמחליף את java.util.logging.Handler. אפשר להגדיר אותו כברירת המחדל על ידי הוספת משאב logging.properties אל באפליקציה, כפי שמוצג ב-LogManager.

שינוי פרוגרמטי של מטפל הרישום ביומן

כדי להוסיף handler של רישום ביומן באופן פרוגרמטי, משתמשים באותו הקוד שבו משתמשים כדי לשנות אותו ב-Java:

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

אם אתם לא רוצים שרכיבי handler הקיימים יפעלו, צריך להסיר אותם קודם באמצעות:

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

שינוי ה-handler של הרישום ביומן באמצעות קובץ מאפיין

  1. כדי לשנות את ה-handler שמוגדר כברירת מחדל לרישום ביומן באמצעות קובץlog.properties, צריך לציין את ה-handler הזה כך (בדיוק כמו ביישומי Java):

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

    לקובץ הזה יכול להיות כל שם, כל עוד משתמשים בשם הזה במהלך הטעינה.

  2. בשלב הבא, מוסיפים את הקובץ logging.properties כמשאב iOS לפרויקט.

  3. בניגוד לאפליקציות Java, אפליקציית J2ObjC צריכה לטעון באופן מפורש את קובץ המאפיין:

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