package com.yoursway.utils.log; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.net.UnknownHostException; public class TcpIpLogger implements Logger { private static final int PORT = 4321; private PrintWriter writer = null; public void add(LogEntry entry) { try { connect(); writer.println(entry.message()); } catch (Throwable e) { e.printStackTrace(); } } private void connect() throws UnknownHostException, IOException { if (writer != null) return; Socket socket = new Socket("localhost", PORT); writer = new PrintWriter(socket.getOutputStream(), true); } public static void main(String[] args) { try { ServerSocket server = new ServerSocket(PORT); int i = 0; while (true) { final int client = i++; final Socket socket = server.accept(); Thread thread = new Thread() { @Override public void run() { try { BufferedReader reader = new BufferedReader(new InputStreamReader(socket .getInputStream())); while (true) { String line = reader.readLine(); if (line == null) break; System.out.println(client + ": " + line); } } catch (IOException e) { e.printStackTrace(); } } }; thread.start(); } } catch (Throwable e) { e.printStackTrace(); } } }