feat(测试连接logstash): 测试连接logstash

测试连接logstash
This commit is contained in:
Guwan 2024-12-23 22:26:39 +08:00
parent a6a12a3b04
commit d82bf584bb
5 changed files with 97 additions and 0 deletions

View File

@ -316,6 +316,13 @@
<version>3.1.8</version>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.6</version> <!-- 请使用最新版本 -->
</dependency>
</dependencies>
<build>

View File

@ -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

View File

@ -38,6 +38,16 @@
<appender-ref ref="FILE"/>
</appender>
<!-- 从application.yml中读取配置 -->
<springProperty scope="context" name="LOGSTASH_HOST" source="logging.logstash.host"/>
<springProperty scope="context" name="LOGSTASH_PORT" source="logging.logstash.port"/>
<!-- Logstash TCP输出 -->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>${LOGSTASH_HOST}:${LOGSTASH_PORT}</destination> <!-- Logstash 地址和端口 -->
<encoder class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<!-- 开发环境 -->
<springProfile name="dev">
<root level="INFO">
@ -47,6 +57,8 @@
<appender-ref ref="ASYNC_FILE"/>
</then>
</if>
<!-- 开发环境启用 Logstash -->
<appender-ref ref="LOGSTASH"/>
</root>
<logger name="com.guwan.backend" level="DEBUG"/>
</springProfile>
@ -59,6 +71,8 @@
<appender-ref ref="ASYNC_FILE"/>
</then>
</if>
<!-- 生产环境启用 Logstash -->
<appender-ref ref="LOGSTASH"/>
</root>
<logger name="com.guwan.backend" level="INFO"/>
</springProfile>

View File

@ -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();
}
}
}

View File

@ -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();
}
}
}