java - 在集群环境中聚合 Jboss 日志的正确方法是什么?

标签 java jboss cluster-computing log4j

我们使用带有两个节点的 Jboss 7.4.0,每个节点都有自己的滚动文件附加程序。我们想要做的是将这两个输出重定向到一个独特的文件中,在两个 Jboss 节点“外部”。我尝试将 SocketAppenders 与手动启动的 Log4J 服务器一起使用,但它不起作用...

<custom-handler name="SOCKET" class="org.apache.log4j.net.SocketAppender" module="org.apache.log4j">
  <level name="DEBUG"/>
  <formatter>
     <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p %X{user} %X{app} [%C:%M:%L] (%t) %s%E%n"/>
  </formatter>
  <properties>
     <property name="Port" value="4712"/>
     <property name="RemoteHost" value="127.0.0.1"/>
  </properties>

log4j 服务器中唯一的东西是:

[2015-04-01 10:31:24,969] [main] [Listening on port 4712]
[2015-04-01 10:31:24,981] [main] [Waiting to accept a new client.]

我读到 Jboss 7+ 中不再存在 SocketAppender,但老实说,Jboss 文档不完整、缺失或充其量是不正确的。

那么,在不重新发明轮子的情况下,正确(或最佳)的方法是什么? 我们应该使用异步滚动文件附加程序吗? 还有其他选择吗?

最佳答案

按照这些步骤正确使用它,这可能会解决您的问题..

1>首先创建log4j-server.properties

log4j.rootLogger=DEBUG, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logfile.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d] [%t] [%m]%n

2> 现在在接收方运行以下命令

java -classpath log4j.jar org.apache.log4j.net.SimpleSocketServer 4712 log4j-server.properties

现在它将监听端口 4712并将日志存储在 logfile.log 中您在 log4j-server.properties 中定义的文件

3>在log4j.xml文件中添加如下appender将日志发送到指定端口的服务器。

<custom-handler name="SOCKET"  class="org.apache.log4j.net.SocketAppender" module="org.apache.log4j">
<level name="DEBUG"/>
<properties>
  <property name="Port" value="4712"/>
  <property name="RemoteHost" value="127.0.0.1"/>
</properties>

不要在此配置中指定任何格式化程序。 并且不要忘记添加 SOCKETroot-loggerlog4j.xml

关于java - 在集群环境中聚合 Jboss 日志的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29386736/

相关文章:

java - HibernatePersistenceProvider.createEntityManagerFactory() 方法的 JBoss AS7 LinkageError

javascript - NodeJS - 是否可以有两个独立的集群?

python - 如何在 slurm 中安装 python 包/模块

java - 移动手指时看不到路径

java - EJB3 @RunAs 注释和安全性

Java:如果另一个 int 尚不存在则定义 int

java - 从另一个 @Transactional 注解方法调用 @Transactional 注解方法

java - Maven Artifact jboss-as-client 坏了 (trove :trove:jar:2. 1.1)

Ubuntu 上的 apache + mod_cluster + wildfly

java - Akka 集群 Java API 示例