我正在尝试创建一个简单的UDP服务器来从log4j2 socket appender处理软件包,但是我得到了一个" java.io.streamcorreputtedexception:nive expection:nive stream stream header:7372003e"收到的软件包。
appender:
<Socket name="Socket" host="localhost" port="9500" protocol="UDP" >
<SerializedLayout />
</Socket>
摘要UDP服务器:
public void startSerialized() throws Exception {
serverSocket = new DatagramSocket(9500);
LogEvent logEvent = null;
ObjectInputStream obj = null;
ByteArrayInputStream bis = null;
while (true) {
try {
receivePacket = new DatagramPacket(packet, packet.length);
serverSocket.receive(receivePacket);
bis = new ByteArrayInputStream(receivePacket.getData());
obj = new ObjectInputStream(bis);
logEvent = (LogEvent) obj.readObject();
System.out.println(logEvent.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
bis.close();
obj.close();
}
}
}
有什么建议?
我使用了您的帖子中的相同代码,但是我成功地将调试日志转到了服务器端。以下是我的log4j2.xml
<Socket name="Socket" host="localHost" port="9092" protocol="UDP" >
<SerializedLayout />
</Socket>
</appenders>
<loggers>
<logger name="rezg.gdsws.util" level="info">
<appender-ref ref="Socket" />
</logger>
<logger name="org.apache" level="debug" /> <!-- Otherwise when we enable debug Apache debugs also printed -->
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</loggers>