XMLFormatter

XMLFormatter (XML 형식 로그 형식화)

XMLFormatterLogRecord를 표준 XML 형식으로 형식화해요. DTD 명세는 Java Logging APIs 명세의 부록 A로 제공돼요. XMLFormatter은 임의의 문자 인코딩과 함께 사용할 수 있지만 일반적으로 UTF-8과 함께 사용하는 것이 권장돼요. 문자 인코딩은 출력 Handler에 설정할 수 있어요.

출처: Java API Reference

본문

이 클래스는 Formatter를 확장해요.

구현 요구사항

JDK 9부터 LogRecord 인스턴스는 밀리초 해상도보다 낮은 나노초를 가질 수 있는 Instant를 포함해요. DTD 명세는 선택적 <nanos> 요소를 허용하도록 갱신됐어요. 기본적으로 XMLFormatter은 밀리초 해상도 아래의 나노초 조정값(LogRecord.getInstant().getNano() % 1000_000 사용)을 계산하고, 이 값이 0이 아니면 새 <nanos> 요소에 이 조정값을 출력해요.

이벤트 인스턴트는 Instant.ofEpochSecond(millis/1000L, (millis % 1000L) * 1000_000L + nanos)로 재구성할 수 있어요, 여기서 millisnanos는 각각 <millis><nanos> 요소에 직렬화된 숫자예요. <date> 요소는 이제 DateTimeFormatter.ISO_INSTANT 포매터가 형식화한 전체 인스턴트를 포함해요.

이전 파서와의 호환성을 위해, <xml-formatter-fully-qualified-class-name>.useInstant = false 프로퍼티를 로깅 구성에 지정하면 XMLFormatter이 이전 형식으로 되돌아가도록 구성할 수 있어요. useInstantfalse이면 이전 형식이 보존되고, true(기본값)이면 새 형식이 사용돼요.

생성자

  • XMLFormatter() — 새 XMLFormatter을 생성해요.

메서드

  • String format(LogRecord record) — 주어진 LogRecord를 형식화해요.
  • String getHead(Handler h) — 형식화된 레코드 집합에 대한 XML 헤더 문자열을 반환해요.
  • String getTail(Handler h) — 형식화된 레코드 집합에 대한 XML tail 문자열을 반환해요.

더 알아보기 (Learn more)

Java 공식 API