java - 将 SocketHubAppender 用于部署在 Tomcat 中的 Web 应用程序

标签 java jakarta-ee tomcat logging log4j

我有多个部署在 tomcast 服务器上的网络应用。

在我的网络应用程序的一个 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 也有相同的附加程序。

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

现在,如果我尝试将第二个 Web 应用程序添加到已包含第一个 Web 应用程序的 Tomcat 服务器,它会在日志中抛出“端口已在使用”错误。

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

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

高级感谢

最佳答案

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

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

关于java - 将 SocketHubAppender 用于部署在 Tomcat 中的 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13403442/

相关文章:

java - Play Framework : How to compile an application with the option "-Xlint:unchecked"?

java - 类转换异常 - 鼠标事件

java - Java中LinkedList添加方法的使用

tomcat - 如何为 Tomcat JDBCRealm 准备摘要密码?

java - 如何阻止 Apache httpd 拒绝 HTTP PATCH 请求?

java - 奥尼多多 : SQLException occurs: Unknown column 'xxx' in 'field list'

java - 将大型应用程序从 JavaEE 迁移到 Akka

java - spring配置文件中的三元运算符

jakarta-ee - RestEasy @EJB 返回 null

Tomcat + 管理属性文件