SocketHandler
SocketHandler (네트워크 로그 핸들러)
SocketHandler은 단순한 네트워크 로깅 Handler이에요. StreamHandler를 확장해요. LogRecord는 네트워크 스트림 연결에 게시돼요. 기본적으로 XMLFormatter 클래스가 형식화에 사용돼요.
본문
구성
기본적으로 각 SocketHandler은 다음 LogManager 구성 프로퍼티로 초기화돼요(<handler-name>은 핸들러의 완전한 클래스 이름). 프로퍼티가 정의되지 않으면 지정된 기본값이 사용돼요.
<handler-name>.level—Handler의 기본 레벨(기본Level.ALL).<handler-name>.filter— 사용할Filter클래스 이름(기본 필터 없음).<handler-name>.formatter— 사용할Formatter클래스 이름(기본java.util.logging.XMLFormatter).<handler-name>.encoding— 사용할 문자 집합 인코딩 이름(기본 플랫폼 인코딩).<handler-name>.host— 연결할 대상 호스트 이름(기본 없음).<handler-name>.port— 사용할 대상 TCP 포트(기본 없음).
예를 들어 SocketHandler 프로퍼티는 다음과 같아요:
java.util.logging.SocketHandler.level=INFO
java.util.logging.SocketHandler.formatter=java.util.logging.SimpleFormatter
사용자 지정 핸들러, 예를 들어 com.foo.MyHandler의 프로퍼티는 다음과 같아요:
com.foo.MyHandler.level=INFO
com.foo.MyHandler.formatter=java.util.logging.SimpleFormatter
출력 IO 스트림은 버퍼링되지만 각 로그 레코드가 완료되면 플러시돼요. 로그 서버가 준비될 때까지 대기하도록 소켓이 준비될 때까지 지연이 발생할 수 있어요.
생성자
SocketHandler()— LogManager 구성으로 초기화된SocketHandler을 생성해요.SocketHandler(String host, int port)— 지정된 호스트와 포트에 연결하는SocketHandler을 생성해요. 호스트나 포트가 유효하지 않으면IOException이 발생해요.
SocketHandler을 사용하면 TCP 소켓을 통해 원격 로그 수집 서버로 로그를 전송할 수 있어요.