ErrorManager
ErrorManager (로그 핸들러 오류 관리)
ErrorManager은 로그 핸들러가 처리 중 오류를 만났을 때 이 오류들을 관리하는 책임을 맡는 클래스예요. Handler가 로그 레코드를 게시하는 동안 발생하는 문제를 보고하는 데 사용돼요.
본문
각 Handler에는 ErrorManager이 있어요. 핸들러가 하나의 로그 레코드나 출력에 대해 세 가지 시도 중 실패하면, 그 오류 코드와 함께 ErrorManager의 error 메서드에 보고돼요. 이 클래스는 오류를 처리하는 세 가지 주요 코드를 정의해요:
static final int GENERIC_FAILURE— 일반(무분류) 실패를 나타내요.static final int WRITE_FAILURE— 출력 스트림에 쓰는 동안 실패했음을 나타내요.static final int FLUSH_FAILURE— 버퍼를 플러시하는 동안 실패했음을 나타내요.static final int CLOSE_FAILURE— 스트림을 닫는 동안 실패했음을 나타내요.static final int OPEN_FAILURE— 스트림을 여는 동안 실패했음을 나타내요.static final int FORMAT_FAILURE— 포맷하는 동안 실패했음을 나타내요.
기본 ErrorManager은 발생한 문제를 System.err에 출력해요. error(String msg, Exception ex, int code) 메서드는 오류를 보고할 때 사용돼요. 커스텀 ErrorManager을 생성해 핸들러가 오류를 처리하는 방식을 바꿀 수 있어요. ErrorManager은 안전하게 멀티스레드로 사용할 수 있도록 설계됐어요.