增加日志输出

This commit is contained in:
qaq
2025-08-15 19:45:22 +08:00
parent 8f4d5897fa
commit 5be8082d96
11 changed files with 65 additions and 54 deletions
@@ -137,9 +137,9 @@ public class LogAspect {
); );
// 打印单条完整异常日志 // 打印单条完整异常日志
log.error(errorMessage, ex); log.info(errorMessage, ex);
} catch (Exception e) { } catch (Exception e) {
log.error("记录异常日志时出错: {}", e.getMessage()); log.info("记录异常日志时出错: {}", e.getMessage());
} }
} }
@@ -21,20 +21,20 @@ public class GlobalExceptionHandler {
public R MethodArgumentNotValidException(MethodArgumentNotValidException e) { public R MethodArgumentNotValidException(MethodArgumentNotValidException e) {
BindingResult result = e.getBindingResult(); BindingResult result = e.getBindingResult();
ObjectError objectError = result.getAllErrors().stream().findFirst().get(); ObjectError objectError = result.getAllErrors().stream().findFirst().get();
log.error("实体校验异常:----------------{}", objectError.getDefaultMessage()); log.info("实体校验异常:----------------{}", objectError.getDefaultMessage());
return R.err(500, objectError.getDefaultMessage()); return R.err(500, objectError.getDefaultMessage());
} }
// 未授权异常捕获 // 未授权异常捕获
@ExceptionHandler(value = UnauthorizedException.class) @ExceptionHandler(value = UnauthorizedException.class)
public R handleUnauthorizedException(UnauthorizedException e) { public R handleUnauthorizedException(UnauthorizedException e) {
log.error("未授权异常:----------------{}", e.getMessage()); log.info("未授权异常:----------------{}", e.getMessage());
return R.err(401, e.getMessage()); return R.err(401, e.getMessage());
} }
@ExceptionHandler(value = Exception.class) @ExceptionHandler(value = Exception.class)
public R Exception(Exception e){ public R Exception(Exception e){
log.error("异常:----------------{}", e.getMessage()); log.info("异常:----------------{}", e.getMessage());
return R.err(-2, e.getMessage()); return R.err(-2, e.getMessage());
} }
@@ -74,7 +74,7 @@ public class CheckGostConfigAsync {
if (Objects.equals(type, "tcp")) { // 只处理TCP,避免重复处理 if (Objects.equals(type, "tcp")) { // 只处理TCP,避免重复处理
Forward forward = forwardService.getById(forwardId); Forward forward = forwardService.getById(forwardId);
if (forward == null) { if (forward == null) {
log.warn("删除孤立的服务: {} (节点: {})", service.getName(), node.getId()); log.info("删除孤立的服务: {} (节点: {})", service.getName(), node.getId());
GostDto gostDto = GostUtil.DeleteService(node.getId(), forwardId + "_" + userId + "_" + userTunnelId); GostDto gostDto = GostUtil.DeleteService(node.getId(), forwardId + "_" + userId + "_" + userTunnelId);
System.out.println(gostDto); System.out.println(gostDto);
} }
@@ -82,7 +82,7 @@ public class CheckGostConfigAsync {
if (Objects.equals(type, "tls")) { if (Objects.equals(type, "tls")) {
Forward forward = forwardService.getById(forwardId); Forward forward = forwardService.getById(forwardId);
if (forward == null) { if (forward == null) {
log.warn("删除孤立的服务: {} (节点: {})", service.getName(), node.getId()); log.info("删除孤立的服务: {} (节点: {})", service.getName(), node.getId());
GostUtil.DeleteRemoteService(node.getId(), forwardId+"_"+userId+"_"+userTunnelId); GostUtil.DeleteRemoteService(node.getId(), forwardId+"_"+userId+"_"+userTunnelId);
} }
} }
@@ -112,7 +112,7 @@ public class CheckGostConfigAsync {
if (Objects.equals(type, "chains")) { if (Objects.equals(type, "chains")) {
Forward forward = forwardService.getById(forwardId); Forward forward = forwardService.getById(forwardId);
if (forward == null) { if (forward == null) {
log.warn("删除孤立的链: {} (节点: {})", chain.getName(), node.getId()); log.info("删除孤立的链: {} (节点: {})", chain.getName(), node.getId());
GostUtil.DeleteChains(node.getId(), forwardId+"_"+userId+"_"+userTunnelId); GostUtil.DeleteChains(node.getId(), forwardId+"_"+userId+"_"+userTunnelId);
} }
} }
@@ -134,7 +134,7 @@ public class CheckGostConfigAsync {
safeExecute(() -> { safeExecute(() -> {
SpeedLimit speedLimit = speedLimitService.getById(limiter.getName()); SpeedLimit speedLimit = speedLimitService.getById(limiter.getName());
if (speedLimit == null) { if (speedLimit == null) {
log.warn("删除孤立的限流器: {} (节点: {})", limiter.getName(), node.getId()); log.info("删除孤立的限流器: {} (节点: {})", limiter.getName(), node.getId());
GostUtil.DeleteLimiters(node.getId(), Long.parseLong(limiter.getName())); GostUtil.DeleteLimiters(node.getId(), Long.parseLong(limiter.getName()));
} }
}, "清理限流器 " + limiter.getName()); }, "清理限流器 " + limiter.getName());
@@ -148,7 +148,7 @@ public class CheckGostConfigAsync {
try { try {
operation.run(); operation.run();
} catch (Exception e) { } catch (Exception e) {
log.error("执行操作失败: {}", operationDesc, e); log.info("执行操作失败: {}", operationDesc, e);
} }
} }
@@ -78,7 +78,7 @@ public class ResetFlowAsync {
log.info("到期任务执行完成"); log.info("到期任务执行完成");
} catch (Exception e) { } catch (Exception e) {
log.error("定时任务执行失败", e); log.info("定时任务执行失败", e);
} }
} }
@@ -126,12 +126,12 @@ public class ResetFlowAsync {
log.info("用户[ID: {}, 用户名: {}]流量重置成功,重置日期: 每月{}号", log.info("用户[ID: {}, 用户名: {}]流量重置成功,重置日期: 每月{}号",
user.getId(), user.getUser(), user.getFlowResetTime()); user.getId(), user.getUser(), user.getFlowResetTime());
} else { } else {
log.error("用户[ID: {}, 用户名: {}]流量重置失败", user.getId(), user.getUser()); log.info("用户[ID: {}, 用户名: {}]流量重置失败", user.getId(), user.getUser());
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error("重置用户流量失败", e); log.info("重置用户流量失败", e);
} }
} }
@@ -179,13 +179,13 @@ public class ResetFlowAsync {
log.info("用户隧道[ID: {}, 用户ID: {}, 隧道ID: {}]流量重置成功,重置日期: 每月{}号", log.info("用户隧道[ID: {}, 用户ID: {}, 隧道ID: {}]流量重置成功,重置日期: 每月{}号",
userTunnel.getId(), userTunnel.getUserId(), userTunnel.getTunnelId(), userTunnel.getFlowResetTime()); userTunnel.getId(), userTunnel.getUserId(), userTunnel.getTunnelId(), userTunnel.getFlowResetTime());
} else { } else {
log.error("用户隧道[ID: {}, 用户ID: {}, 隧道ID: {}]流量重置失败", log.info("用户隧道[ID: {}, 用户ID: {}, 隧道ID: {}]流量重置失败",
userTunnel.getId(), userTunnel.getUserId(), userTunnel.getTunnelId()); userTunnel.getId(), userTunnel.getUserId(), userTunnel.getTunnelId());
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error("重置用户隧道流量失败", e); log.info("重置用户隧道流量失败", e);
} }
} }
@@ -42,9 +42,9 @@ public class AESCrypto {
this.secretKey = new SecretKeySpec(keyBytes, ALGORITHM); this.secretKey = new SecretKeySpec(keyBytes, ALGORITHM);
this.secureRandom = new SecureRandom(); this.secureRandom = new SecureRandom();
log.debug("AES加密器初始化成功"); log.info("AES加密器初始化成功");
} catch (Exception e) { } catch (Exception e) {
log.error("AES加密器初始化失败", e); log.info("AES加密器初始化失败", e);
throw new RuntimeException("AES加密器初始化失败: " + e.getMessage(), e); throw new RuntimeException("AES加密器初始化失败: " + e.getMessage(), e);
} }
} }
@@ -83,7 +83,7 @@ public class AESCrypto {
return Base64.getEncoder().encodeToString(buffer.array()); return Base64.getEncoder().encodeToString(buffer.array());
} catch (Exception e) { } catch (Exception e) {
log.error("数据加密失败", e); log.info("数据加密失败", e);
throw new RuntimeException("数据加密失败: " + e.getMessage(), e); throw new RuntimeException("数据加密失败: " + e.getMessage(), e);
} }
} }
@@ -137,7 +137,7 @@ public class AESCrypto {
return cipher.doFinal(ciphertext); return cipher.doFinal(ciphertext);
} catch (Exception e) { } catch (Exception e) {
log.error("数据解密失败", e); log.info("数据解密失败", e);
throw new RuntimeException("数据解密失败: " + e.getMessage(), e); throw new RuntimeException("数据解密失败: " + e.getMessage(), e);
} }
} }
@@ -161,7 +161,7 @@ public class AESCrypto {
try { try {
return new AESCrypto(secret); return new AESCrypto(secret);
} catch (Exception e) { } catch (Exception e) {
log.error("创建AES加密器失败: {}", e.getMessage()); log.info("创建AES加密器失败: {}", e.getMessage());
return null; return null;
} }
} }
@@ -112,7 +112,7 @@ public class WebSocketServer extends TextWebSocketHandler {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error("处理响应消息失败: {}", e.getMessage(), e); log.info("处理响应消息失败: {}", e.getMessage(), e);
} }
} else { } else {
log.info("收到消息: {}", decryptedPayload); log.info("收到消息: {}", decryptedPayload);
@@ -135,7 +135,7 @@ public class WebSocketServer extends TextWebSocketHandler {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error("处理WebSocket消息时发生异常: {}", e.getMessage(), e); log.info("处理WebSocket消息时发生异常: {}", e.getMessage(), e);
} }
} }
@@ -155,18 +155,18 @@ public class WebSocketServer extends TextWebSocketHandler {
// 获取或创建加密器 // 获取或创建加密器
AESCrypto crypto = getOrCreateCrypto(nodeSecret); AESCrypto crypto = getOrCreateCrypto(nodeSecret);
if (crypto == null) { if (crypto == null) {
log.warn("⚠️ 收到加密消息但无法创建解密器,使用原始数据"); log.info("⚠️ 收到加密消息但无法创建解密器,使用原始数据");
return payload; return payload;
} }
// 解密数据 // 解密数据
String decryptedData = crypto.decryptString(encryptedMessage.getData()); String decryptedData = crypto.decryptString(encryptedMessage.getData());
log.debug("🔓 WebSocket消息解密成功"); log.info("🔓 WebSocket消息解密成功");
return decryptedData; return decryptedData;
} }
} catch (Exception e) { } catch (Exception e) {
// 解析失败,可能是非加密格式,直接返回原始数据 // 解析失败,可能是非加密格式,直接返回原始数据
log.debug("WebSocket消息未加密或解密失败,使用原始数据: {}", e.getMessage()); log.info("WebSocket消息未加密或解密失败,使用原始数据: {}", e.getMessage());
} }
return payload; return payload;
@@ -191,11 +191,11 @@ public class WebSocketServer extends TextWebSocketHandler {
encryptedMessage.put("data", encryptedData); encryptedMessage.put("data", encryptedData);
encryptedMessage.put("timestamp", System.currentTimeMillis()); encryptedMessage.put("timestamp", System.currentTimeMillis());
log.debug("🔐 WebSocket消息加密成功"); log.info("🔐 WebSocket消息加密成功");
return encryptedMessage.toJSONString(); return encryptedMessage.toJSONString();
} }
} catch (Exception e) { } catch (Exception e) {
log.warn("⚠️ WebSocket消息加密失败,发送原始数据: {}", e.getMessage()); log.info("⚠️ WebSocket消息加密失败,发送原始数据: {}", e.getMessage());
} }
return message; return message;
@@ -232,7 +232,7 @@ public class WebSocketServer extends TextWebSocketHandler {
// 检查是否已有该节点的连接,如果有则记录日志但直接覆盖 // 检查是否已有该节点的连接,如果有则记录日志但直接覆盖
WebSocketSession existingSession = nodeSessions.get(nodeId); WebSocketSession existingSession = nodeSessions.get(nodeId);
if (existingSession != null && existingSession.isOpen()) { if (existingSession != null && existingSession.isOpen()) {
log.warn("节点 {} 已有连接存在: {},新连接将覆盖旧连接", nodeId, existingSession.getId()); log.info("节点 {} 已有连接存在: {},新连接将覆盖旧连接", nodeId, existingSession.getId());
// 清理旧连接的锁对象 // 清理旧连接的锁对象
sessionLocks.remove(existingSession.getId()); sessionLocks.remove(existingSession.getId());
} }
@@ -246,7 +246,7 @@ public class WebSocketServer extends TextWebSocketHandler {
log.info("主动关闭节点 {} 的旧连接: {}", nodeId, existingSession.getId()); log.info("主动关闭节点 {} 的旧连接: {}", nodeId, existingSession.getId());
existingSession.close(); existingSession.close();
} catch (Exception e) { } catch (Exception e) {
log.error("关闭节点 {} 旧连接失败: {}", nodeId, e.getMessage()); log.info("关闭节点 {} 旧连接失败: {}", nodeId, e.getMessage());
} }
} }
@@ -270,17 +270,17 @@ public class WebSocketServer extends TextWebSocketHandler {
res.put("data", 1); res.put("data", 1);
broadcastMessage(res.toJSONString()); broadcastMessage(res.toJSONString());
} else { } else {
log.error("节点 {} 状态更新失败", nodeId); log.info("节点 {} 状态更新失败", nodeId);
} }
} else { } else {
log.error("节点 {} 不存在,无法更新状态", nodeId); log.info("节点 {} 不存在,无法更新状态", nodeId);
// 移除无效的会话 // 移除无效的会话
nodeSessions.remove(nodeId); nodeSessions.remove(nodeId);
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error("建立连接时发生异常: {}", e.getMessage(), e); log.info("建立连接时发生异常: {}", e.getMessage(), e);
// 异常情况下,确保清理会话 // 异常情况下,确保清理会话
try { try {
String id = session.getAttributes().get("id").toString(); String id = session.getAttributes().get("id").toString();
@@ -288,10 +288,10 @@ public class WebSocketServer extends TextWebSocketHandler {
if (Objects.equals(type, "1")) { if (Objects.equals(type, "1")) {
Long nodeId = Long.valueOf(id); Long nodeId = Long.valueOf(id);
nodeSessions.remove(nodeId); nodeSessions.remove(nodeId);
log.warn("由于异常,移除节点 {} 的会话", nodeId); log.info("由于异常,移除节点 {} 的会话", nodeId);
} }
} catch (Exception cleanupException) { } catch (Exception cleanupException) {
log.error("清理异常会话时出错: {}", cleanupException.getMessage()); log.info("清理异常会话时出错: {}", cleanupException.getMessage());
} }
} }
} }
@@ -341,10 +341,10 @@ public class WebSocketServer extends TextWebSocketHandler {
res.put("data", 0); res.put("data", 0);
broadcastMessage(res.toJSONString()); broadcastMessage(res.toJSONString());
} else { } else {
log.error("节点 {} 状态更新为离线失败", nodeId); log.info("节点 {} 状态更新为离线失败", nodeId);
} }
} else { } else {
log.warn("节点 {} 不存在,无法更新离线状态", nodeId); log.info("节点 {} 不存在,无法更新离线状态", nodeId);
} }
} }
@@ -352,7 +352,7 @@ public class WebSocketServer extends TextWebSocketHandler {
sessionLocks.remove(sessionId); sessionLocks.remove(sessionId);
} catch (Exception e) { } catch (Exception e) {
log.error("关闭连接时发生异常: {}", e.getMessage(), e); log.info("关闭连接时发生异常: {}", e.getMessage(), e);
} }
} }
@@ -383,7 +383,7 @@ public class WebSocketServer extends TextWebSocketHandler {
socketSession.sendMessage(new TextMessage(finalMessage)); socketSession.sendMessage(new TextMessage(finalMessage));
} }
} catch (Exception e) { } catch (Exception e) {
log.error("发送WebSocket消息失败 [sessionId={}]: {}", sessionId, e.getMessage()); log.info("发送WebSocket消息失败 [sessionId={}]: {}", sessionId, e.getMessage());
cleanupSession(socketSession); cleanupSession(socketSession);
} }
} }
@@ -428,14 +428,14 @@ public class WebSocketServer extends TextWebSocketHandler {
WebSocketSession nodeSession = nodeSessions.get(node_id); WebSocketSession nodeSession = nodeSessions.get(node_id);
if (nodeSession == null) { if (nodeSession == null) {
log.warn("发送消息失败:节点 {} 不在线或会话不存在", node_id); log.info("发送消息失败:节点 {} 不在线或会话不存在", node_id);
GostDto result = new GostDto(); GostDto result = new GostDto();
result.setMsg("节点不在线"); result.setMsg("节点不在线");
return result; return result;
} }
if (!nodeSession.isOpen()) { if (!nodeSession.isOpen()) {
log.warn("发送消息失败:节点 {} 连接已断开,清理会话", node_id); log.info("发送消息失败:节点 {} 连接已断开,清理会话", node_id);
nodeSessions.remove(node_id); nodeSessions.remove(node_id);
sessionLocks.remove(nodeSession.getId()); sessionLocks.remove(nodeSession.getId());
GostDto result = new GostDto(); GostDto result = new GostDto();
@@ -461,7 +461,7 @@ public class WebSocketServer extends TextWebSocketHandler {
sendToUser(nodeSession, data.toJSONString(), nodeSecret); sendToUser(nodeSession, data.toJSONString(), nodeSecret);
GostDto result = future.get(10, TimeUnit.SECONDS); GostDto result = future.get(10, TimeUnit.SECONDS);
log.debug("成功发送消息到节点 {} 并收到响应: {}", node_id, result.getMsg()); log.info("成功发送消息到节点 {} 并收到响应: {}", node_id, result.getMsg());
return result; return result;
} catch (Exception e) { } catch (Exception e) {
@@ -471,10 +471,10 @@ public class WebSocketServer extends TextWebSocketHandler {
GostDto result = new GostDto(); GostDto result = new GostDto();
if (e instanceof java.util.concurrent.TimeoutException) { if (e instanceof java.util.concurrent.TimeoutException) {
result.setMsg("等待响应超时"); result.setMsg("等待响应超时");
log.warn("节点 {} 响应超时,可能存在连接问题", node_id); log.info("节点 {} 响应超时,可能存在连接问题", node_id);
} else { } else {
result.setMsg("发送消息失败: " + e.getMessage()); result.setMsg("发送消息失败: " + e.getMessage());
log.error("发送消息到节点 {} 失败: {}", node_id, e.getMessage(), e); log.info("发送消息到节点 {} 失败: {}", node_id, e.getMessage(), e);
} }
return result; return result;
} }
@@ -57,7 +57,7 @@ public class EncryptionConfig {
public static void clearCrypto(String secret) { public static void clearCrypto(String secret) {
if (secret != null) { if (secret != null) {
CRYPTO_CACHE.remove(secret); CRYPTO_CACHE.remove(secret);
log.debug("已清理密钥对应的加密器实例"); log.info("已清理密钥对应的加密器实例");
} }
} }
@@ -1,6 +1,7 @@
package com.admin.config; package com.admin.config;
import com.admin.common.utils.IpUtils;
import com.admin.common.utils.JwtUtil; import com.admin.common.utils.JwtUtil;
import com.admin.entity.Node; import com.admin.entity.Node;
import com.admin.service.NodeService; import com.admin.service.NodeService;
@@ -14,6 +15,7 @@ import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor; import org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.net.InetSocketAddress;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
@@ -37,9 +39,10 @@ public class WebSocketInterceptor extends HttpSessionHandshakeInterceptor {
String type = serverHttpRequest.getServletRequest().getParameter("type"); String type = serverHttpRequest.getServletRequest().getParameter("type");
String version = serverHttpRequest.getServletRequest().getParameter("version"); String version = serverHttpRequest.getServletRequest().getParameter("version");
if (Objects.equals(type, "1")) { if (Objects.equals(type, "1")) {
System.out.println("type: " + type + " - version: " + version + " - secret: " + secret + " - IP: " + getClientIp(request));
Node node = nodeService.getOne(new QueryWrapper<Node>().eq("secret", secret)); Node node = nodeService.getOne(new QueryWrapper<Node>().eq("secret", secret));
if (node == null) { if (node == null) {
log.warn("节点验证失败:未找到匹配的secret"); log.info("节点验证失败:未找到匹配的secret");
return false; return false;
} }
attributes.put("id", node.getId()); attributes.put("id", node.getId());
@@ -56,5 +59,13 @@ public class WebSocketInterceptor extends HttpSessionHandshakeInterceptor {
return true; return true;
} }
public String getClientIp(ServerHttpRequest request) {
InetSocketAddress remoteAddress = request.getRemoteAddress();
if (remoteAddress != null) {
return remoteAddress.getAddress().getHostAddress();
}
return null;
}
} }
@@ -154,7 +154,7 @@ public class FlowController extends BaseController {
} }
// 记录日志 // 记录日志
log.debug("🔓 节点流量数据接收成功{}", isEncryptedMessage(rawData) ? "(已解密)" : ""); log.info("🔓 节点流量数据接收成功{}", isEncryptedMessage(rawData) ? "(已解密)" : "");
// 4. 处理流量数据 // 4. 处理流量数据
return processFlowData(flowDataList); return processFlowData(flowDataList);
@@ -193,18 +193,18 @@ public class FlowController extends BaseController {
// 获取或创建加密器 // 获取或创建加密器
AESCrypto crypto = getOrCreateCrypto(secret); AESCrypto crypto = getOrCreateCrypto(secret);
if (crypto == null) { if (crypto == null) {
log.warn("⚠️ 收到加密消息但无法创建解密器,使用原始数据"); log.info("⚠️ 收到加密消息但无法创建解密器,使用原始数据");
return rawData; return rawData;
} }
// 解密数据 // 解密数据
String decryptedData = crypto.decryptString(encryptedMessage.getData()); String decryptedData = crypto.decryptString(encryptedMessage.getData());
log.debug("🔓 数据解密成功"); log.info("🔓 数据解密成功");
return decryptedData; return decryptedData;
} }
} catch (Exception e) { } catch (Exception e) {
// 解析失败,可能是非加密格式,直接返回原始数据 // 解析失败,可能是非加密格式,直接返回原始数据
log.debug("数据未加密或解密失败,使用原始数据: {}", e.getMessage()); log.info("数据未加密或解密失败,使用原始数据: {}", e.getMessage());
} }
return rawData; return rawData;
@@ -1060,7 +1060,7 @@ public class ForwardServiceImpl extends ServiceImpl<ForwardMapper, Forward> impl
R deleteResult = deleteOldGostServices(existForward, oldTunnel); R deleteResult = deleteOldGostServices(existForward, oldTunnel);
if (deleteResult.getCode() != 0) { if (deleteResult.getCode() != 0) {
// 删除失败时记录日志,但不影响后续创建(可能原配置已不存在) // 删除失败时记录日志,但不影响后续创建(可能原配置已不存在)
log.warn("删除原隧道{}的Gost配置失败: {}", oldTunnel.getId(), deleteResult.getMsg()); log.info("删除原隧道{}的Gost配置失败: {}", oldTunnel.getId(), deleteResult.getMsg());
} }
// 3. 创建新的Gost服务配置 // 3. 创建新的Gost服务配置
@@ -1088,7 +1088,7 @@ public class ForwardServiceImpl extends ServiceImpl<ForwardMapper, Forward> impl
if (!oldNodeInfo.isHasError() && oldNodeInfo.getInNode() != null) { if (!oldNodeInfo.isHasError() && oldNodeInfo.getInNode() != null) {
GostDto serviceResult = GostUtil.DeleteService(oldNodeInfo.getInNode().getId(), serviceName); GostDto serviceResult = GostUtil.DeleteService(oldNodeInfo.getInNode().getId(), serviceName);
if (!isGostOperationSuccess(serviceResult)) { if (!isGostOperationSuccess(serviceResult)) {
log.warn("删除主服务失败: {}", serviceResult.getMsg()); log.info("删除主服务失败: {}", serviceResult.getMsg());
} }
} }
@@ -1098,7 +1098,7 @@ public class ForwardServiceImpl extends ServiceImpl<ForwardMapper, Forward> impl
if (!oldNodeInfo.isHasError() && oldNodeInfo.getInNode() != null) { if (!oldNodeInfo.isHasError() && oldNodeInfo.getInNode() != null) {
GostDto chainResult = GostUtil.DeleteChains(oldNodeInfo.getInNode().getId(), serviceName); GostDto chainResult = GostUtil.DeleteChains(oldNodeInfo.getInNode().getId(), serviceName);
if (!isGostOperationSuccess(chainResult)) { if (!isGostOperationSuccess(chainResult)) {
log.warn("删除链服务失败: {}", chainResult.getMsg()); log.info("删除链服务失败: {}", chainResult.getMsg());
} }
} }
@@ -1114,7 +1114,7 @@ public class ForwardServiceImpl extends ServiceImpl<ForwardMapper, Forward> impl
if (outNode != null) { if (outNode != null) {
GostDto remoteResult = GostUtil.DeleteRemoteService(outNode.getId(), serviceName); GostDto remoteResult = GostUtil.DeleteRemoteService(outNode.getId(), serviceName);
if (!isGostOperationSuccess(remoteResult)) { if (!isGostOperationSuccess(remoteResult)) {
log.warn("删除远程服务失败: {}", remoteResult.getMsg()); log.info("删除远程服务失败: {}", remoteResult.getMsg());
} }
} }
} }
@@ -762,7 +762,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
} }
} }
log.debug("用户 {} 获取到 {} 条实际记录,补齐为 {} 条24小时记录", userId, recentFlows.size(), result.size()); log.info("用户 {} 获取到 {} 条实际记录,补齐为 {} 条24小时记录", userId, recentFlows.size(), result.size());
return result; return result;
} }