2010년 12월 7일 화요일

java logging

기본 자바 환경에서 logger를 설정하고 아무리 logger의 level을 변경해봐야 소용없다.
일단 console handler의 레벨이 INFO이기 때문에 console handler의 레벨을 변경해야 하고
console handler를 새로 생성해서 addHandler로 등록해서 사용할 경우 로그가 두번씩 찍히고
logger의 핸들러를 getHandlers로 얻어와 변경하려해도 0개를 리턴한다.



        if (logger.getUseParentHandlers()) {
            Logger parentLogger = logger.getParent();
            Handler[] handlers = parentLogger.getHandlers();
            for (Handler handler : handlers) {
                if (handler instanceof ConsoleHandler)
                    handler.setLevel(Level.ALL);
            }
        }
        else {
            Handler[] handlers = logger.getHandlers();
            for (Handler handler : handlers) {
                if (handler instanceof ConsoleHandler)
                    handler.setLevel(Level.ALL);
            }
        }

댓글 없음:

댓글 쓰기