自定义 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);
      }
    }