Personalizar a geração de registros do iOS

A geração de registros do iOS é processada pelo IOSLogHandler.java, que substitui java.util.logging.Handler. Você pode defini-lo como padrão adicionando um recurso logging.properties ao app, conforme mostrado no LogManager.

Como alterar o gerenciador do Logging de maneira programática

Para adicionar um gerenciador de geração de registros de forma programática, use o mesmo código que você usaria para alterá-lo em Java:

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

Se você não quiser que os gerenciadores atuais também sejam executados, remova-os primeiro usando:

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

Como alterar o gerenciador do Logging com um arquivo de propriedade

  1. Para alterar o gerenciador de geração de registros padrão usando um arquivo logging.properties, é preciso especificar o gerenciador dessa forma (o mesmo que acontece com aplicativos Java):

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

    O arquivo pode ter qualquer nome, desde que ele seja usado durante o carregamento.

  2. Em seguida, adicione o arquivo logging.properties como um recurso do iOS ao projeto.

  3. Ao contrário dos aplicativos Java, um aplicativo J2ObjC precisa carregar explicitamente o arquivo de propriedade:

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