XMLFormatter
XMLFormatter (XML 형식 로그 형식화)
XMLFormatter은 LogRecord를 표준 XML 형식으로 형식화해요. DTD 명세는 Java Logging APIs 명세의 부록 A로 제공돼요. XMLFormatter은 임의의 문자 인코딩과 함께 사용할 수 있지만 일반적으로 UTF-8과 함께 사용하는 것이 권장돼요. 문자 인코딩은 출력 Handler에 설정할 수 있어요.
본문
이 클래스는 Formatter를 확장해요.
구현 요구사항
JDK 9부터 LogRecord 인스턴스는 밀리초 해상도보다 낮은 나노초를 가질 수 있는 Instant를 포함해요. DTD 명세는 선택적 <nanos> 요소를 허용하도록 갱신됐어요. 기본적으로 XMLFormatter은 밀리초 해상도 아래의 나노초 조정값(LogRecord.getInstant().getNano() % 1000_000 사용)을 계산하고, 이 값이 0이 아니면 새 <nanos> 요소에 이 조정값을 출력해요.
이벤트 인스턴트는 Instant.ofEpochSecond(millis/1000L, (millis % 1000L) * 1000_000L + nanos)로 재구성할 수 있어요, 여기서 millis와 nanos는 각각 <millis>와 <nanos> 요소에 직렬화된 숫자예요. <date> 요소는 이제 DateTimeFormatter.ISO_INSTANT 포매터가 형식화한 전체 인스턴트를 포함해요.
이전 파서와의 호환성을 위해, <xml-formatter-fully-qualified-class-name>.useInstant = false 프로퍼티를 로깅 구성에 지정하면 XMLFormatter이 이전 형식으로 되돌아가도록 구성할 수 있어요. useInstant가 false이면 이전 형식이 보존되고, true(기본값)이면 새 형식이 사용돼요.
생성자
XMLFormatter()— 새XMLFormatter을 생성해요.
메서드
String format(LogRecord record)— 주어진LogRecord를 형식화해요.String getHead(Handler h)— 형식화된 레코드 집합에 대한 XML 헤더 문자열을 반환해요.String getTail(Handler h)— 형식화된 레코드 집합에 대한 XML tail 문자열을 반환해요.