LogRecord
LogRecord (로깅 요청 전달)
LogRecord 객체는 로깅 프레임워크와 개별 로그 Handler 사이에서 로깅 요청을 전달하는 데 사용돼요. LogRecord가 로깅 프레임워크에 전달되면 논리적으로 프레임워크에 속하게 되며 클라이언트 애플리케이션이 더 이상 사용하거나 업데이트해서는 안 돼요.
본문
클라이언트 애플리케이션이 명시적 소스 메서드 이름과 소스 클래스 이름을 지정하지 않았다면, LogRecord 클래스는 처음 접근할 때(getSourceMethodName 또는 getSourceClassName 호출로) 호출 스택을 분석해 자동으로 추론해요. 따라서 로깅 Handler이 LogRecord를 다른 스레드에 넘기거나 RMI로 전송하고 이후 메서드 이름이나 클래스 이름 정보를 얻고 싶다면, getSourceClassName 또는 getSourceMethodName 중 하나를 호출해 값을 채우도록 해야 해요.
직렬화 참고
LogRecord 클래스는 직렬화 가능해요. parameters 배열의 객체는 직렬화 불가능할 수 있으므로, 직렬화 중 parameters 배열의 모든 객체는 해당 문자열(Object.toString 사용)로 기록돼요. ResourceBundle은 직렬화 형식의 일부로 전송되지 않지만 리소스 번들 이름은 전송되고, 수신 객체의 readObject 메서드는 적절한 리소스 번들을 찾으려 시도해요. Java 1.4부터 제공돼요.
생성자
LogRecord(Level level, String msg)— 지정된 레벨과 메시지 값으로LogRecord를 생성해요.
메서드
주요 메서드로 getLevel, setLevel, getLoggerName, getMessage, setMessage, getMillis, getInstant, getSourceClassName, getSourceMethodName, getParameters, getThrown, setThrown, getResourceBundle, getResourceBundleName, getSequenceNumber, getThreadID, getLongThreadID 등이 있어요.