iOS-Logging anpassen

Das iOS-Logging wird von IOSLogHandler.java verwaltet, wodurch java.util.logging.Handler überschrieben wird. Sie können sie als Standard festlegen, indem Sie eine logging.properties-Ressource zu wie in LogManager gezeigt.

Logging-Handler programmatisch ändern

Wenn Sie einen Logging-Handler programmatisch hinzufügen möchten, verwenden Sie denselben Code, mit dem Sie ihn in Java ändern würden:

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

Wenn Sie nicht möchten, dass die vorhandenen Handler ebenfalls ausgeführt werden, entfernen Sie sie zuerst mit:

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

Logging-Handler mit einer Eigenschaftsdatei ändern

  1. Wenn Sie den Standard-Logging-Handler mithilfe einer Datei „logging.properties“ ändern möchten, müssen Sie diesen Handler angeben (genau wie bei Java-Anwendungen):

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

    Diese Datei kann einen beliebigen Namen haben, solange dieser Name beim Laden verwendet wird.

  2. Als Nächstes fügen Sie Ihrem Projekt die Datei „logging.properties“ als iOS-Ressource hinzu.

  3. Im Gegensatz zu Java-Anwendungen muss eine J2ObjC-Anwendung die Eigenschaftsdatei explizit laden:

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