iOS-Logging anpassen

Das iOS-Logging wird von IOSLogHandler.java ausgeführt, das java.util.logging.Handler überschreibt. Sie können sie als Standard festlegen, indem Sie Ihrer Anwendung eine logging.properties-Ressource hinzufügen, wie in LogManager gezeigt.

Logging-Handler programmatisch ändern

Um einen Protokollierungs-Handler programmatisch hinzuzufügen, verwenden Sie denselben Code, den Sie verwenden würden, um ihn in Java zu ändern:

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

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

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

Logging-Handler mit einer Attributdatei ändern

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

    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. Anders als bei Java-Anwendungen muss bei einer J2ObjC-Anwendung die Eigenschaftsdatei explizit geladen werden:

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