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);
}
속성 파일로 로깅 핸들러 변경
Logging.properties 파일을 사용하여 기본 로깅 핸들러를 변경하려면 자바 애플리케이션과 마찬가지로 다음과 같이 핸들러를 지정해야 합니다.
handlers=mycompany.mylogger.MyIOSLogHandler java.util.logging.ConsoleHandler.level=ALL
로드 중에 사용되기만 하면 이 파일의 이름에는 제한이 없습니다.
다음으로, 프로젝트에 logging.properties 파일을 iOS 리소스로 추가합니다.
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); } }