2012-11-15 2 views
2

Tomcast 서버에 배포 할 여러 웹 응용 프로그램이 있습니다.Tomcat에 배포 된 web-app에 SocketHubAppender 사용

내 webapp의 log4j.properties 중 하나에서 다음 Socket HUB appender를 추가하여 해당 소켓으로 로그를 보냈습니다.

log4j.appender.SOCKET=org.apache.log4j.net.SocketHubAppender 
log4j.appender.SOCKET.port=9999 
log4j.appender.SOCKET.locationInfo=true 

모든 것이 잘 배포됩니다.

내 두 번째 애플리케이션의 log4j.properties에도 동일한 애펜더가 있습니다. 이미 첫 번째 웹 어플리케이션을 포함 Tomcat 서버에이 두 번째 웹 어플리케이션을 추가하려고하면

log4j.appender.SOCKET=org.apache.log4j.net.SocketHubAppender 
log4j.appender.SOCKET.port=9999 
log4j.appender.SOCKET.locationInfo=true 

지금, 그것은 로그에서 "포트가 이미 사용 중"오류를 발생합니다.

그러나 두 번째 응용 프로그램의 포트를 9998로 변경하면 로그에 오류가 표시되지 않습니다. Afaik, 여기에 언급 된 포트는 수신자의 포트이므로 여러 응용 프로그램이 동일한 수신 포트를 사용하는 경우 문제가되어서는 안됩니다.

또는이 appender를 Tomcat의 log4j.properties에 구성해야하지만 배포 된 모든 응용 프로그램에는 구성하지 않아야합니다.

Adavanced 감사

답변

6

SocketHubAppender 여기에 TCP 서버 역할을하며 주어진 로컬 호스트 포트에서 수신 대기 시작합니다. 로그 뷰어 (Apache Chainsaw, OstrosLogViewer, ...)는이 포트에 연결하고 데이터를 수신/가져옵니다.

SocketAppender은 TCP 클라이언트로 작동하고, 지정된 원격 서버 : 포트에 연결하여 데이터를 보내고/보냅니다. SocketHubAppender 설정 가능한

0

모든 속성은 (Log4J를 1.2.x와 함께) 현재 위치 :

  • 포트 : 허브에 의해 열린 포트는
  • LocationInfo (연결 대기) : 위치 정보를 포함
  • BUFFERSIZE : 로그 이벤트의 수는
  • 신청 (신규 고객의 경우) 버퍼 : 응용 프로그램
의 이름을 https://issues.apache.org/jira/browse/LOG4J2-171

:

https://wiki.apache.org/logging-log4j/SocketHubAppender https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SocketHubAppender.html

<appender name="SOCKET" class="org.apache.log4j.net.SocketHubAppender"> 
    <param name="Port" value="4560" /> 
    <param name="LocationInfo" value="true" /> 
    <param name="BufferSize" value="1000" /> 
    <param name="Application" value="MyAppName" /> 
</appender> 

하는 것으로는 Log4J를 2.x를과 함께 SocketHubAppender 적어도 지금은 ... 더 이상 존재하지 않습니다

관련 문제