6

我是电锯和 log4j 的新手,这是对上一篇文章的跟进。我有一些设备使用套接字处理程序使用以下配置文件将记录发送到拼图:

<?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" beALL而不是INFO?

怎么样:priority value="debug"

任何指针将不胜感激。

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

编辑相关的问题帖子,也在这里那里

4

1 回答 1

0

你似乎没有log4j迷上电锯。您在 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>
于 2016-06-07T07:24:08.377 回答