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