Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为部署在Tomcat中的web应用使用SocketHubAppender_Java_Jakarta Ee_Tomcat_Logging_Log4j - Fatal编程技术网

Java 为部署在Tomcat中的web应用使用SocketHubAppender

Java 为部署在Tomcat中的web应用使用SocketHubAppender,java,jakarta-ee,tomcat,logging,log4j,Java,Jakarta Ee,Tomcat,Logging,Log4j,我在tomcast服务器上部署了多个Web应用程序 在我的一个webapp的log4j.properties中,我添加了以下套接字集线器appender,以便将日志发送到该套接字 log4j.appender.SOCKET=org.apache.log4j.net.SocketHubAppender log4j.appender.SOCKET.port=9999 log4j.appender.SOCKET.locationInfo=true 一切都很好 我的第二个应用程序的log4j.pro

我在tomcast服务器上部署了多个Web应用程序

在我的一个webapp的log4j.properties中,我添加了以下套接字集线器appender,以便将日志发送到该套接字

log4j.appender.SOCKET=org.apache.log4j.net.SocketHubAppender 
log4j.appender.SOCKET.port=9999
log4j.appender.SOCKET.locationInfo=true
一切都很好

我的第二个应用程序的log4j.properties也有相同的appender

log4j.appender.SOCKET=org.apache.log4j.net.SocketHubAppender 
log4j.appender.SOCKET.port=9999 
log4j.appender.SOCKET.locationInfo=true
现在,如果我尝试将第二个web应用程序添加到已经包含第一个web应用程序的tomcat服务器,它会在日志中抛出一个“端口已在使用”错误

但是,如果我将第二个应用程序的端口更改为9998,则在日志中看不到任何错误。好的,这里提到的端口是接收器的端口,因此如果多个应用程序使用同一个接收器端口,应该不会有问题

或者我应该在Tomcat的log4j.properties中配置这个appender,而不是在每个部署在其中的应用程序中


高级感谢

SocketHubAppender
在这里充当TCP服务器,并开始侦听给定的本地主机端口。日志查看器(Apache Chainsaw、OstrologViewer等)连接到此端口并从中接收/提取数据


另一方面,SocketAppender充当TCP客户端,连接到给定的远程服务器:端口并向发送/推送数据。

SocketAppender的所有可设置属性都在这里(带有Log4J 1.2.x):

  • 端口:集线器打开的端口(等待连接)
  • 位置信息:包括位置信息
  • BufferSize:要缓冲的日志事件数(对于新客户端)
  • 应用程序:应用程序的名称

<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>