use*_*230 2 java logging tomcat log4j java-ee
我有多个webapps部署在tomcast服务器上.
在我的一个webapp的log4j.properties中,我添加了以下Socket HUB appender,以便将日志发送到该套接字.
log4j.appender.SOCKET=org.apache.log4j.net.SocketHubAppender
log4j.appender.SOCKET.port=9999
log4j.appender.SOCKET.locationInfo=true
Run Code Online (Sandbox Code Playgroud)
一切都得到了很好的部署.
我的第二个应用程序的log4j.properties也有相同的appender.
log4j.appender.SOCKET=org.apache.log4j.net.SocketHubAppender
log4j.appender.SOCKET.port=9999
log4j.appender.SOCKET.locationInfo=true
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试将第二个Web应用程序添加到已包含第一个Web应用程序的tomcat服务器,它会在日志中抛出"已在使用中的端口"错误.
但是,如果我将第二个应用程序的端口更改为9998,则日志中不会显示任何错误.Afaik,这里提到的端口是reciver的端口,因此如果多个应用程序使用相同的reciver端口,它应该不会有问题.
或者我应该在Tomcat的log4j.properties中配置此appender,而不是在其中部署的每个应用程序中配置.
高兴谢谢
SocketHubAppender在此充当TCP服务器并开始侦听给定的localhost端口.日志查看器(Apache Chainsaw,OstrosLogViewer,...)连接到此端口并从中接收/提取数据.
SocketAppender另一方面,充当TCP客户端,连接到给定的远程服务器:端口并发送/推送数据.