Personalizza Logging di iOS

Il logging di iOS viene gestito da IOSLogHandler.java, che sostituisce java.util.logging.Handler. Puoi impostarla come predefinita aggiungendo una risorsa logging.properties all'app, come mostrato in LogManager.

Modifica del gestore di logging in modo programmatico

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

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

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

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

Modifica del gestore Logging con un file di 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é venga utilizzato durante il caricamento.

  2. Quindi, 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);
      }
    }