Personnaliser la journalisation iOS

La journalisation iOS est gérée par IOSLogHandler.java, qui remplace java.util.logging.Handler. Vous pouvez la définir comme valeur par défaut en ajoutant une ressource logging.properties à votre application, comme indiqué dans LogManager.

Modifier le gestionnaire de journalisation par programmation

Pour ajouter un gestionnaire de journalisation par programmation, utilisez le même code que celui utilisé pour le modifier en Java:

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

Si vous ne souhaitez pas que les gestionnaires existants s'exécutent également, supprimez-les d'abord en exécutant la commande suivante:

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

Modifier le gestionnaire de journalisation avec un fichier de propriétés

  1. Pour modifier le gestionnaire de journalisation par défaut à l'aide d'un fichier "logging.properties", vous devez spécifier ce gestionnaire comme suit (comme pour les applications Java):

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

    Ce fichier peut porter n'importe quel nom, à condition que celui-ci soit utilisé lors du chargement.

  2. Ensuite, ajoutez le fichier logging.properties en tant que ressource iOS à votre projet.

  3. Contrairement aux applications Java, une application J2ObjC doit charger explicitement le fichier de propriétés:

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