按照该链接中的方法 
进行log4j  发消息到socket端口,
但是如果不是用博文中作者提到的方法接受,另写了一个接受的socket,同一台机器,接受到的信息是一大堆乱码?
package com.test.Receiver;
import java.net.*;
import org.apache.log4j.Logger;
import java.io.*;
public class MultiUser extends Thread {
static Logger logger = Logger.getLogger(MultiUser.class.getName());
private Socket client;
public MultiUser(Socket c)
{
this.client = c;
}
public void run()
{
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream());
         while(true)
                 {
             String str=in.readLine();
             logger.debug(str);             System.out.println(str);
             if(str.equals("end"))
             {
             break;
             }
               }
               client.close();
}
catch(IOException ex)
{

}
finally
{

}
} public static void main(String[] args) throws IOException
        {
// TODO Auto-generated method stub

ServerSocket server = new ServerSocket(4445);
while(true)
{
//transfer location change Single User or Multi User
MultiUser mu = new MultiUser(server.accept());
mu.start();
}

}}

解决方案 »

  1.   

    public void run() {
    try {
    ObjectInputStream ois = new ObjectInputStream(
                         new BufferedInputStream(client.getInputStream()));
     
    LoggingEvent event;
    while (true) {
     // read an event from the wire
            event = (LoggingEvent) ois.readObject();
            String msg = event.getRenderedMessage();
            System.out.println(msg);
           
    }
    } catch (Exception ex) { } finally { }
    }