2016-05-15 16 views
0

i schrieben einen Protokoll-Server, der das Zeug aus einem Bündel von sockethandlers auf anderen Geräten kommen isst und es in eine Protokolldatei schreibt, die wie folgt aussieht:Apache Kettensäge v2 bekommt: Bind Ausnahme oder Verbindung verloren! :: ungültig Stream-Header: 3c3f786d

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

i Kettensäge sind neu .

Kettensäge kann diese Dateien öffnen mit: Laden Sie Java-Util-Datei.

Wenn ich einen einfachen Empfänger für Port 4445 hinzufügen, bekomme ich eine Bind-Ausnahme.

Wenn ich einen einfachen Empfänger für Port 4560 hinzufüge, bekomme ich die Verbindung verloren.

Ich habe keine Config-Dateien und bin mir nicht sicher, wie man einen schreibt.

Wenn ich den einfachen Empfänger zum Funktionieren bringen kann, kann Motorsäge die Protokolldateien überrollen und die Protokolldateien durch das Gerät trennen, von dem sie kommen?

dank

bearbeiten 1: sieht aus wie dieser reveiver verwenden: org.apache.log4j.xml.XMLDecoder, die nicht die richtige sein kann. Dies schlägt post vor: org.apache.log4j.xml.UtilLoggingXMLDecoder. manuell versucht dies nicht zu funktionieren.

bearbeiten 2: dank scott Deboy auf der log4j Mailing-Liste, diese Konfigurationsdatei gearbeitet:

<?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> 

bearbeiten 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> 

dies scheint zu funktionieren, aber alle: ein Rollover hinzugefügt der Kettensäge-Logging (sowie meine Sachen) ist in der Log-Datei.

Antwort

0

Chainsaw kann Protokolldateien, die dem log4j xml-Format entsprechen, oder normale Textprotokolldateien mit einem konsistenten Protokollformat über VFSLogFilePatternReceiver analysieren, jedoch nicht Ihr eigenes XML-Format.

+0

meine Protokolldateien sind im Standard-Format jdk util, Sie können die dtd in den Dateien sehen. Kettensäge isst diese gerade gut, wenn ich sie manuell mit öffne: Laden Sie Java-Util-Datei aus dem Menü. –