parent
a6a12a3b04
commit
d82bf584bb
7
pom.xml
7
pom.xml
|
@ -316,6 +316,13 @@
|
||||||
<version>3.1.8</version>
|
<version>3.1.8</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.logstash.logback</groupId>
|
||||||
|
<artifactId>logstash-logback-encoder</artifactId>
|
||||||
|
<version>6.6</version> <!-- 请使用最新版本 -->
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
@ -210,3 +210,6 @@ logging:
|
||||||
pattern:
|
pattern:
|
||||||
console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"
|
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"
|
file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"
|
||||||
|
logstash:
|
||||||
|
host: localhost
|
||||||
|
port: 5044
|
|
@ -38,6 +38,16 @@
|
||||||
<appender-ref ref="FILE"/>
|
<appender-ref ref="FILE"/>
|
||||||
</appender>
|
</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">
|
<springProfile name="dev">
|
||||||
<root level="INFO">
|
<root level="INFO">
|
||||||
|
@ -47,6 +57,8 @@
|
||||||
<appender-ref ref="ASYNC_FILE"/>
|
<appender-ref ref="ASYNC_FILE"/>
|
||||||
</then>
|
</then>
|
||||||
</if>
|
</if>
|
||||||
|
<!-- 开发环境启用 Logstash -->
|
||||||
|
<appender-ref ref="LOGSTASH"/>
|
||||||
</root>
|
</root>
|
||||||
<logger name="com.guwan.backend" level="DEBUG"/>
|
<logger name="com.guwan.backend" level="DEBUG"/>
|
||||||
</springProfile>
|
</springProfile>
|
||||||
|
@ -59,6 +71,8 @@
|
||||||
<appender-ref ref="ASYNC_FILE"/>
|
<appender-ref ref="ASYNC_FILE"/>
|
||||||
</then>
|
</then>
|
||||||
</if>
|
</if>
|
||||||
|
<!-- 生产环境启用 Logstash -->
|
||||||
|
<appender-ref ref="LOGSTASH"/>
|
||||||
</root>
|
</root>
|
||||||
<logger name="com.guwan.backend" level="INFO"/>
|
<logger name="com.guwan.backend" level="INFO"/>
|
||||||
</springProfile>
|
</springProfile>
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue