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

时间:2015-04-01 09:02:23

标签: java jboss cluster-computing log4

我们正在使用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.]

我已经读过SocketAppender已经存在于Jboss 7+中,但说实话,Jboss文档不完整,缺失或最多不正确。

那么,在没有重新发明轮子的情况下,做到这一点的正确(或最佳)方式是什么? 我们应该使用异步滚动文件追加器吗? 还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

按照以下步骤正确使用它可能会解决您的问题..

1&GT;首先创建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&gt;在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>

请勿在此配置中指定任何格式化程序。 并且不要忘记在SOCKET

root-logger中添加log4j.xml