Personalizza Logging di iOS

Il logging di iOS è gestito da IOSLogHandler.java, che sostituisce java.util.logging.Handler. Puoi impostarlo come predefinito aggiungendo una risorsa logging.properties a nell'app, come mostrato in LogManager.

Modifica programmatica del gestore di logging

Per aggiungere in modo programmatico un gestore di logging, usa lo stesso codice che useresti per modificarlo in Java:

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

Se non vuoi che vengano eseguiti anche i gestori esistenti, rimuovili prima utilizzando:

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

Modifica del gestore di logging con un file delle proprietà

  1. Per modificare il gestore di logging predefinito utilizzando un file logging.properties, devi specificare il gestore. in questo modo (come per le applicazioni Java):

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

    Questo file può avere qualsiasi nome, purché tale nome venga utilizzato durante il caricamento.

  2. Successivamente, aggiungi il file logging.properties come risorsa iOS al progetto.

  3. A differenza delle applicazioni Java, un'applicazione J2ObjC deve caricare esplicitamente il file delle proprietà:

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