사용자 도구

사이트 도구


java:log4j:socketappender

SocketAppender & SocketHubAppender

SocketAppender

  • SocketAppender 는 애플리케이션에서 발생하는 로그를 다른 서버로 자동 전송하는 클라이언트 역할을 한다.
  • 따라서 로그 수집 서버를 하나 만들어 두고 여러 애플리케이션이 해당 서버에 로그를 쏴주어 여러 애플리케연션의 로그를 한 곳으로 모으기 좋다.
  • 기본 설정
    <appender name="socket" class="org.apache.log4j.net.SocketAppender">  
        <param name="Port" value="4560" />  
        <param name="RemoteHost" value="localhost" />  
        <param name="ReconnectionDelay" value="10000" />   <!-- 재접속10초 -->
        <param name="Threshold" value="INFO" />  
    </appender>

SocketAppender로부터의 로그 수집기

  • org.apache.log4j.net.SimpleSocketServer 예제 : SocketAppender의 접속을 받는 기본 서버 애플리케이션.
  • 각 애플리케이션들로부터 로그를 받아서 log4j-server.properties에 설정된 형태로 다시 로그를 남기는 SimpleSocketServer
    java -classpath log4j.jar org.apache.log4j.net.SimpleSocketServer 9988 log4j-server.properties
  • SimpleSocketServer는 수집된 로그 정보를 SocketNode에 넘겨서 마치 로컬 로그인 것처럼 log4j 설정 파일에 따라 다시 로그로 남긴다.

SocketHubAppender

  • SocketHubAppender는 애플리케이션이 서버가 되어 접속을 기다리고 있고, 로그 뷰어 클라이언트가 애플리케이션의 SocketHubAppender에 접속하여 로그를 받아가는 형태이다.
  • 따라서 클라이언트가 원하는 애플리케이션에 선택적으로 접속하여 로그를 보는 형태에 적합하다.
<!-- 클라이언트가 애플리케이션 서버의 9004 포트에 접속하여 로그를 받아갈 수 있다. -->
<appender name="sockethub" class="org.apache.log4j.net.SocketHubAppender">
    <param name="port" value="9004" />
</appender>

Viewer

  • OtrosLogViewer SocketAppender의 접속을 기다리는 서버 역할도하고, SocketHubAppender에 접속하는 클라이언트 역할도 함께 할 수 있는 Java GUI 로그 뷰어
java/log4j/socketappender.txt · 마지막으로 수정됨: 2013/04/12 16:00 저자 kwon37xi