0

我写了一个日志服务器,它吃掉来自其他设备上一堆套接字处理程序的东西,并将其写入一个日志文件,如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
  <date>2016-05-15T06:40:03</date>
  ...
</record>
...

我是电锯的新手。

链锯可以使用以下方法打开这些文件:加载 java util 文件。

如果我为端口 4445 添加一个简单的接收器,我会得到一个绑定异常。

如果我为端口 4560 添加一个简单的接收器,我会丢失连接。

我没有任何配置文件,不确定如何编写。

如果我能让简单的接收器工作,电锯可以翻转日志文件并按它们来自的设备分隔日志文件吗?

谢谢

编辑1:看起来reveiver可能使用:org.apache.log4j.xml.XMLDecoder,这可能不是正确的。这篇文章建议:org.apache.log4j.xml.UtilLoggingXMLDecoder。手动尝试这似乎不起作用。

编辑 2:感谢 log4j 邮件列表中的 scott deboy,此配置文件有效:

<?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>
<root>
  <priority value="debug"/>
</root>
</log4j:configuration>

编辑3:添加了一个翻转:

<?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="sample.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>

这似乎可行,但所有电锯日志(以及我的东西)都在日志文件中。

4

1 回答 1

0

Chainsaw 可以解析匹配 log4j xml 格式的日志文件,或者通过 VFSLogFilePatternReceiver 解析具有一致日志格式的常规文本日志文件,但不能解析您自己的 xml 格式。

于 2016-05-16T16:48:29.667 回答