繁体   English   中英

在Tomcat中部署的Web-app使用SocketHubAppender

[英]Using a SocketHubAppender for web-app deployed in Tomcat

我有多个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

一切都得到了很好的部署。

我的第二个应用程序的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,则日志中不会显示任何错误。 Afaik,这里提到的端口是reciver的端口,因此如果多个应用程序使用相同的reciver端口,它应该不会有问题。

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

高兴谢谢

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

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

可以为SocketHubAppender设置的所有属性都在这里(使用Log4J 1.2.x):

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

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不再存在...至少目前为止: https ://issues.apache.org/jira/browse/LOG4J2-171

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM