我写了一个日志服务器来吃掉来自其他设备上的一堆sockethandler的东西,然后将它写入一个看起来像的日志文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
<date>2016-05-15T06:40:03</date>
...
</record>
...
我是电锯新手。
电锯可以使用以下命令打开这些文件:load java util file。
如果我为端口4445添加一个简单的接收器,我会得到一个绑定异常。
如果我为端口4560添加一个简单的接收器,我会丢失连接。
我没有任何配置文件,也不确定如何编写。
如果我可以让简单的接收器工作,可以链锯翻转日志文件并通过它们来自的设备分离日志文件吗?
感谢
编辑1:看起来好像可能会使用:org.apache.log4j.xml.XMLDecoder,这可能不是正确的。这个post建议: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>
这似乎有效,但所有电锯记录(以及我的东西)都在日志文件中。
答案 0 :(得分:0)
Chainsaw可以通过VFSLogFilePatternReceiver解析匹配log4j xml格式的日志文件或具有一致日志格式的常规文本日志文件,但不能解析您自己的xml格式。