diff --git a/pom.xml b/pom.xml index 3f9eec3..38011b2 100644 --- a/pom.xml +++ b/pom.xml @@ -316,6 +316,13 @@ 3.1.8 + + net.logstash.logback + logstash-logback-encoder + 6.6 + + + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index ac9b16c..d1f4158 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -210,3 +210,6 @@ logging: pattern: console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" + logstash: + host: localhost + port: 5044 \ No newline at end of file diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index 5117372..95896c1 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -38,6 +38,16 @@ + + + + + + + ${LOGSTASH_HOST}:${LOGSTASH_PORT} + + + @@ -47,6 +57,8 @@ + + @@ -59,6 +71,8 @@ + + diff --git a/src/test/java/com/guwan/backend/LogstashLoggerHTTP.java b/src/test/java/com/guwan/backend/LogstashLoggerHTTP.java new file mode 100644 index 0000000..dafbe84 --- /dev/null +++ b/src/test/java/com/guwan/backend/LogstashLoggerHTTP.java @@ -0,0 +1,37 @@ +package com.guwan.backend; + +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URL; + +public class LogstashLoggerHTTP { + + public static void main(String[] args) { + try { + // 设置 Logstash HTTP 监听地址和端口 + URL url = new URL("http://localhost:5044"); // Logstash HTTP 输入插件地址 + + // 打开 HTTP 连接 + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("POST"); + connection.setRequestProperty("Content-Type", "application/json"); + connection.setDoOutput(true); + + // 创建 JSON 格式的日志消息 + String jsonLog = "{\"title\":\"测试1\",\"content\":[\"孙二娘\",\"张超\",\"李国英\"]}"; + + // 发送日志数据 + try (OutputStream os = connection.getOutputStream()) { + byte[] input = jsonLog.getBytes("utf-8"); + os.write(input, 0, input.length); + } + + // 获取响应 + int responseCode = connection.getResponseCode(); + System.out.println("HTTP Response Code: " + responseCode); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/test/java/com/guwan/backend/LogstashLoggerTCP.java b/src/test/java/com/guwan/backend/LogstashLoggerTCP.java new file mode 100644 index 0000000..e5eea7c --- /dev/null +++ b/src/test/java/com/guwan/backend/LogstashLoggerTCP.java @@ -0,0 +1,36 @@ +package com.guwan.backend; + +import java.io.OutputStream; +import java.net.Socket; +import java.nio.charset.StandardCharsets; + +public class LogstashLoggerTCP { + + public static void main(String[] args) { + try { + // 设置 Logstash TCP 监听地址和端口 + String logstashHost = "localhost"; + int logstashPort = 5044; // Logstash TCP 输入插件的端口 + + // 创建 Socket 连接 + try (Socket socket = new Socket(logstashHost, logstashPort); + OutputStream os = socket.getOutputStream()) { + + // 创建 JSON 格式的日志消息 + String jsonLog = "{\"title\":\"测试1\",\"content\":[\"孙二娘\",\"张超\",\"李国英\"]}"; + + // 发送日志数据 + os.write(jsonLog.getBytes(StandardCharsets.UTF_8)); + os.flush(); + + System.out.println("Log sent successfully to Logstash"); + + } catch (Exception e) { + System.err.println("Error sending log to Logstash: " + e.getMessage()); + e.printStackTrace(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } +}