自定义 iOS 日志记录

iOS 日志记录由 IOSLogHandler.java 处理,它会替换 java.util.logging.Handler。您可以通过向应用添加 logging.properties 资源来将其设置为默认资源,如 LogManager 中所示。

以编程方式更改日志记录处理程序

要以编程方式添加日志记录处理程序,请使用在 Java 中对其进行更改的相同代码:

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

如果您不希望现有处理程序也运行,请先使用以下命令将其移除:

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

使用属性文件更改日志记录处理程序

  1. 如需使用 logging.properties 文件更改默认日志记录处理程序,您必须按如下方式指定该处理程序(与 Java 应用相同):

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

    此文件可以任意名称,只要加载期间使用该名称即可。

  2. 接下来,将 logging.properties 文件作为 iOS 资源添加到您的项目中。

  3. 与 Java 应用不同,J2ObjC 应用需要显式加载属性文件:

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