java 收集 log4j2 socket tcp 日志

青苗 青苗 | 289 | 2023-07-03

log4j2 配置

<Configuration status="off" monitorInterval="600">
    ...
    <Appenders>
        <Socket name="LogstashLog" host="192.168.1.70" port="8888" protocol="TCP">
            <PatternLayout pattern="${PATTERN}"/>
        </Socket>
    </Appenders>
    <Loggers>
        <AsyncLogger name="com.patzn.paas" level="info" includeLocation="true"/>
        <AsyncLogger name="org.apache.ibatis" level="error" includeLocation="true"/>
        <AsyncLogger name="org.springframework.web" level="error" includeLocation="true"/>
        <AsyncRoot level="error" includeLocation="true">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="InfoLog"/>
            <AppenderRef ref="ErrorLog"/>
            <AppenderRef ref="LogstashLog"/>
        </AsyncRoot>
    </Loggers>
</Configuration>

java socket tcp


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import java.util.concurrent.CountDownLatch;

public class SocketServer {

    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(8888);
            System.out.println("启动服务器....");
            Socket socket = serverSocket.accept();
            System.out.println("客户端:" + socket.getInetAddress().getHostAddress() + "已连接到服务器");
            BufferedReader br = new BufferedReader((new InputStreamReader(socket.getInputStream())));
            CountDownLatch countDownLatch = new CountDownLatch(1);
            new Thread(() -> {
                try {
                    String msg;
                    while (true) {
                        msg = br.readLine();
                        System.out.println("客户端:" + msg);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }).start();
            new Thread(() -> {
                try {
                    while (true) {
                        Scanner scanner = new Scanner(System.in);
                        String msg = scanner.nextLine();
                        if (null != msg) {
                            if (msg == "exit") {
                                countDownLatch.countDown();
                            } else {
                                BufferedWriter bw = new BufferedWriter(new
                                        OutputStreamWriter(socket.getOutputStream()));
                                bw.write(msg + "\n");
                                bw.flush();
                            }
                        }
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }).start();
            countDownLatch.await();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
文章标签: Java
推荐指数:

真诚点赞 诚不我欺~

java 收集 log4j2 socket tcp 日志

点赞 收藏 评论

关于作者

青苗
青苗

青苗幼儿园园长

等级 LV5

粉丝 20

获赞 47

经验 1182