====== SocketAppender & SocketHubAppender ======
===== SocketAppender =====
* [[http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SocketAppender.html|SocketAppender]] 는 애플리케이션에서 발생하는 로그를 다른 서버로 자동 전송하는 클라이언트 역할을 한다.
* 따라서 로그 수집 서버를 하나 만들어 두고 여러 애플리케이션이 해당 서버에 로그를 쏴주어 여러 애플리케연션의 로그를 한 곳으로 모으기 좋다.
* [[http://hmvermeulen.blogspot.kr/2009/10/using-log4js-socketappender.html|Using log4j's SocketAppender]]
* 기본 설정
==== SocketAppender로부터의 로그 수집기 ====
* [[http://stackoverflow.com/questions/11759196/log4j-how-to-use-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''는 수집된 로그 정보를 [[http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SocketNode.html|SocketNode]]에 넘겨서 마치 로컬 로그인 것처럼 log4j 설정 파일에 따라 다시 로그로 남긴다.
===== SocketHubAppender =====
* [[http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SocketHubAppender.html|SocketHubAppender]]는 애플리케이션이 서버가 되어 접속을 기다리고 있고, 로그 뷰어 클라이언트가 애플리케이션의 SocketHubAppender에 접속하여 로그를 받아가는 형태이다.
* 따라서 클라이언트가 원하는 애플리케이션에 선택적으로 접속하여 로그를 보는 형태에 적합하다.
===== Viewer =====
* [[http://code.google.com/p/otroslogviewer/|OtrosLogViewer]] SocketAppender의 접속을 기다리는 서버 역할도하고, SocketHubAppender에 접속하는 클라이언트 역할도 함께 할 수 있는 Java GUI 로그 뷰어