iOS 로깅 맞춤설정

iOS 로깅은 java.util.logging.Handler를 재정의하는 IOSLogHandler.java에 의해 처리됩니다. LogManager에 나와 있는 것처럼 앱에 logging.properties 리소스를 추가하여 이 속성을 기본값으로 설정할 수 있습니다.

프로그래매틱 방식으로 Logging 핸들러 변경

로깅 핸들러를 프로그래매틱 방식으로 추가하려면 Java에서 변경할 때 사용하는 것과 동일한 코드를 사용하세요.

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

기존 핸들러도 실행하지 않으려면 먼저 다음을 사용하여 삭제합니다.

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

속성 파일로 로깅 핸들러 변경

  1. Logging.properties 파일을 사용하여 기본 로깅 핸들러를 변경하려면 자바 애플리케이션과 마찬가지로 다음과 같이 핸들러를 지정해야 합니다.

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