如何为来自多个设备的输入配置apache链锯

时间:2016-05-21 05:41:13

标签: java log4j apache-chainsaw

我是电锯和log4j的新手,这是之前post的后续版本。我有一些设备使用套接字处理程序使用以下配置文件将记录发送到拼图:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration >
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">
<plugin name="XMLSocketReceiver" class="org.apache.log4j.net.XMLSocketReceiver">
      <param name="decoder" value="org.apache.log4j.xml.UtilLoggingXMLDecoder"/>
      <param name="Port" value="2222"/>
   </plugin>
<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
      <param name="Threshold" value="INFO" />
      <param name="File" value="chainsawtablet.log"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d %-5p  [%c{1}] %m %n" />
      </layout>
   </appender>
<root>
  <priority value="debug"/>
  <appender-ref ref="fileAppender" /> 
</root>
</log4j:configuration>

接收器似乎可以工作,因为我在电锯gui中看到一个带有一些日志记录的标签。但它似乎永远不会写一个日志文件。也许它正在等待一天过去或其他什么。有没有办法让它更经常翻滚?

日志文件中没有记录。我需要一些xml来将接收器挂钩到一个appender还是自动的?

我希望日志文件由其源主机分隔。此外,如果重新启动连接,我希望日志文件翻转。

我还想保留一周的日志文件。

我希望看到所有日志记录,所以:param name="Threshold" value="INFO"应该是ALL而不是INFO

如何:priority value="debug"

任何指针都将受到赞赏。

编辑:尝试a:datePattern value="yyyyMMdd-HHmm",据说每分钟滚动一次也不会生成任何日志文件。

修改相关的questionpost,以及herethere

1 个答案:

答案 0 :(得分:0)

您似乎没有log4j与Chainsaw联系。您在Chainsaw GUI中看到的日志消息 - 它们看起来像内部Chainsaw自动记录消息吗?

您需要配置SocketAppender并将其链接到至少一个记录器或根记录器。然后,您的应用程序中的事件将出现在Chainsaw中。如果你想注销一个不同的日志文件,但我假设你想使用Chainsaw作为一个实时事件显示GUI,因为这是大多数人使用它。

这是一个最小的配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' debug='true'>

  <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d %5p %c - %m%n"/>
    </layout>
  </appender>

  <appender name="CHAINSAW" class="org.apache.log4j.net.SocketAppender">
    <param name="RemoteHost" value="localhost"/>
    <param name="Port" value="4445"/>
    <param name="LocationInfo" value="true"/>
  </appender>

  <root>
    <level value ="debug"/>
    <appender-ref ref="STDOUT" />
    <appender-ref ref="CHAINSAW" />
  </root>

</log4j:configuration>