Logger
Logger (시스템·애플리케이션 컴포넌트 로깅)
Logger 객체는 특정 시스템 또는 애플리케이션 컴포넌트의 메시지를 기록하는 데 사용돼요. 로거는 일반적으로 계층적 점 구분 네임스페이스를 사용해 이름을 붙여요. 로거 이름은 임의의 문자열일 수 있지만, 보통 java.net이나 javax.swing처럼 기록되는 컴포넌트의 패키지 이름이나 클래스 이름을 기반으로 해야 해요. 또한 로거 네임스페이스에 저장되지 않는 "익명" 로거를 생성할 수도 있어요.
본문
Logger 객체는 getLogger 팩토리 메서드 중 하나를 호출해 얻을 수 있어요. 이 메서드들은 새 Logger를 생성하거나 적절한 기존 Logger를 반환해요. getLogger 팩토리 메서드가 반환한 Logger은 강한 참조를 유지하지 않으면 언제든 가비지 콜렉트될 수 있다는 점을 주의해야 해요.
로깅 메시지는 등록된 Handler 객체로 전달되며, Handler이 콘솔, 파일, OS 로그 등 다양한 대상으로 메시지를 전달할 수 있어요. 각 Logger은 로거 네임스페이스에서 가장 가까운 기존 조상인 "부모" Logger을 추적해요. 각 Logger에는 이 로거가 관심을 갖는 최소 레벨을 반영하는 "Level"이 연관돼요. 로거의 레벨이 null로 설정되면 유효 레벨은 부모에게서 상속되며, 부모도 부모에게서 재귀적으로 얻을 수 있어요.
로그 레벨은 LogManager 클래스 설명에 설명된 대로 로깅 구성 파일의 프로퍼티를 기반으로 구성할 수 있어요.
이 클래스는 Object를 확장하고 Java 1.4부터 제공돼요. 주요 메서드로 log, severe, warning, info, config, fine, finer, finest, isLoggable, addHandler, removeHandler, setLevel, getLevel, setUseParentHandlers, getParent 등이 있어요.
로깅 예시
Logger logger = Logger.getLogger("com.example.MyApp");
logger.info("애플리케이션이 시작되었습니다.");
logger.warning("구성 값을 찾을 수 없어 기본값을 사용합니다.");