From e17e31edfd5379a74280de4ebde23af4b34c79d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=B4=AB=E5=BD=B1233?= <1440196015@qq.com>
Date: Wed, 23 Jul 2025 23:26:56 +0800
Subject: [PATCH] =?UTF-8?q?v2.1.0=20=E6=9B=B4=E6=96=B0=EF=BC=9A=20=20=20?=
=?UTF-8?q?=20=201=E3=80=81=E5=BC=95=E5=85=A5metona-mq-mini-pro=E6=B6=88?=
=?UTF-8?q?=E6=81=AF=E9=98=9F=E5=88=97=EF=BC=8C=E9=87=8D=E6=9E=84=E5=AE=9E?=
=?UTF-8?q?=E6=97=B6=E6=97=A5=E5=BF=97=E8=8E=B7=E5=8F=96=E6=96=B9=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
.../java/cn/somkit/fmt/FmtApplication.java | 3 ---
.../cn/somkit/fmt/action/UploadAction.java | 27 ++++++++++++-------
.../cn/somkit/fmt/filter/LogStashFilter.java | 1 -
.../fmt/socket/WebSocketServerHandler.java | 8 +++---
.../static/common/js/LogMonitorAdaptive.js | 2 +-
src/main/resources/templates/logging.html | 24 ++++++++++++-----
7 files changed, 40 insertions(+), 27 deletions(-)
diff --git a/pom.xml b/pom.xml
index 94627f0..88f1555 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,7 +55,7 @@
cn.metona
metona-mq-mini-pro
- 1.0.1
+ 1.0.2
diff --git a/src/main/java/cn/somkit/fmt/FmtApplication.java b/src/main/java/cn/somkit/fmt/FmtApplication.java
index dd84694..513204a 100644
--- a/src/main/java/cn/somkit/fmt/FmtApplication.java
+++ b/src/main/java/cn/somkit/fmt/FmtApplication.java
@@ -1,8 +1,5 @@
package cn.somkit.fmt;
-import cn.metona.mq.consumer.MessageListener;
-import cn.metona.mq.core.Message;
-import cn.metona.mq.exception.MessageConsumeException;
import cn.metona.mq.util.MetonaMQUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/cn/somkit/fmt/action/UploadAction.java b/src/main/java/cn/somkit/fmt/action/UploadAction.java
index 2014d39..96b5a78 100644
--- a/src/main/java/cn/somkit/fmt/action/UploadAction.java
+++ b/src/main/java/cn/somkit/fmt/action/UploadAction.java
@@ -2,6 +2,8 @@ package cn.somkit.fmt.action;
import cn.somkit.fmt.utils.OsInfoUtil;
import jakarta.servlet.http.HttpServletRequest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@@ -18,6 +20,8 @@ import java.util.*;
@RequestMapping("/upload")
public class UploadAction {
+ private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
@Value("${somkit.upload.path.windows}")
private String windows_path;
@@ -40,7 +44,7 @@ public class UploadAction {
try {
this.saveFile(file); // 保存上传信息
} catch (Exception e) {
- e.printStackTrace();
+ logger.error("文件保存失败:{}", e.getMessage());
}
}
}
@@ -56,14 +60,19 @@ public class UploadAction {
* @throws Exception 上传异常
*/
public void saveFile(MultipartFile file) throws Exception {
- String path = OsInfoUtil.isWindows() ? windows_path :
- OsInfoUtil.isLinux() ? linux_path : null;
- assert path != null;
- String filePath = "";
- if (file != null && file.getSize() > 0) { // 有文件上传
- filePath = path + File.separator + file.getOriginalFilename();
- File saveFile = new File(filePath) ;
- file.transferTo(saveFile); // 文件保存
+ try {
+ String path = OsInfoUtil.isWindows() ? windows_path :
+ OsInfoUtil.isLinux() ? linux_path : null;
+ assert path != null;
+ String filePath = "";
+ if (file != null && file.getSize() > 0) { // 有文件上传
+ filePath = path + File.separator + file.getOriginalFilename();
+ File saveFile = new File(filePath) ;
+ file.transferTo(saveFile); // 文件保存
+ logger.info("文件保存成功:{}", filePath);
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
}
}
}
diff --git a/src/main/java/cn/somkit/fmt/filter/LogStashFilter.java b/src/main/java/cn/somkit/fmt/filter/LogStashFilter.java
index 3ae8c2a..87fe46d 100644
--- a/src/main/java/cn/somkit/fmt/filter/LogStashFilter.java
+++ b/src/main/java/cn/somkit/fmt/filter/LogStashFilter.java
@@ -30,7 +30,6 @@ public class LogStashFilter extends Filter {
"yyyy-MM-dd HH:mm:ss.SSS")
);
try {
- System.out.println(MetonaMQUtil.getConsumerStatus());
if(MetonaMQUtil.isInitialized() && MetonaMQUtil.isOrderedConsumerRunning()){
MetonaMQUtil.send("log-topic", "log-monitor", JSONUtil.toJsonStr(msg));
}
diff --git a/src/main/java/cn/somkit/fmt/socket/WebSocketServerHandler.java b/src/main/java/cn/somkit/fmt/socket/WebSocketServerHandler.java
index 382fd41..23446d4 100644
--- a/src/main/java/cn/somkit/fmt/socket/WebSocketServerHandler.java
+++ b/src/main/java/cn/somkit/fmt/socket/WebSocketServerHandler.java
@@ -30,7 +30,7 @@ public class WebSocketServerHandler implements WebSocketHandler {
boolean closed = StrUtil.isNotBlank(cache.get("closed")) && Boolean.parseBoolean(cache.get("closed"));
if(!closed){
try {
- if(MetonaMQUtil.isInitialized()){
+ if(MetonaMQUtil.isInitialized() && !MetonaMQUtil.isOrderedConsumerRunning()){
logger.info("Metona MQ Mini Pro 订阅主题(log-topic)(顺序消息)...");
MetonaMQUtil.subscribeOrdered("log-topic", new MessageListener() {
@Override
@@ -43,10 +43,8 @@ public class WebSocketServerHandler implements WebSocketHandler {
}
});
- if(!MetonaMQUtil.isOrderedConsumerRunning()){
- logger.info("Metona MQ Mini Pro 启动消费者(顺序消息)...");
- MetonaMQUtil.startOrderedConsuming();
- }
+ logger.info("Metona MQ Mini Pro 启动消费者(顺序消息)...");
+ MetonaMQUtil.startOrderedConsuming();
}
} catch (Exception e) {
logger.error("Metona MQ Mini Pro 异常", e);
diff --git a/src/main/resources/static/common/js/LogMonitorAdaptive.js b/src/main/resources/static/common/js/LogMonitorAdaptive.js
index 8bf7ff8..34025a5 100644
--- a/src/main/resources/static/common/js/LogMonitorAdaptive.js
+++ b/src/main/resources/static/common/js/LogMonitorAdaptive.js
@@ -309,7 +309,7 @@ class LogMonitorAdaptive {
debug: '#9c27b0', info: '#2196f3', warn: '#ff9800',
error: '#f44336', success: '#4caf50', system: '#00bcd4'
};
- lvlSpan.style.color = colors[entry.level] || colors.info;
+ lvlSpan.style.color = colors[entry.level.toLowerCase()] || colors.info;
lvlSpan.style.minWidth = '70px';
lvlSpan.style.fontWeight = 'bold';
line.appendChild(lvlSpan);
diff --git a/src/main/resources/templates/logging.html b/src/main/resources/templates/logging.html
index c37a76a..d3c0224 100644
--- a/src/main/resources/templates/logging.html
+++ b/src/main/resources/templates/logging.html
@@ -14,6 +14,18 @@
let ws = null;
+ let logMonitor = async (closed = false) => {
+ const options = {
+ url: Fmt.ctx() + '/logging/close',
+ data: {closed: closed},
+ method: 'post'
+ };
+ await Fmt.axios(options).then(() => {}).catch((err) => console.error(err));
+ if(ws){
+ ws.send('发送日志');
+ }
+ }
+
const logger = new LogMonitorAdaptive('#logContainer', {
theme: 'dark',
maxLines: 10000,
@@ -32,13 +44,7 @@
wordWrap: true, // 日志内容是否自动换行(true=换行,false=横向滚动)
//暂停/继续 回调函数
onTogglePause: async (isPaused) => {
- const options = {
- url: Fmt.ctx() + '/logging/close',
- data: {closed: isPaused},
- method: 'post'
- };
- await Fmt.axios(options).then((result) => console.log(result)).catch((err) => console.error(err));
- ws.send('发送日志');
+ await logMonitor(isPaused);
},
onCreated: () => {
console.log('日志容器已创建');
@@ -53,6 +59,10 @@
return false;
}
+ ws.onopen = function () {
+
+ }
+
ws.onmessage = function (event) {
if(event.data){
let data = JSON.parse(event.data);