fix(debug-api): починить сборку после merge и унифицировать буфер debug-логов

This commit is contained in:
AidarKC
2026-04-22 15:03:14 +03:00
parent 6a9746c17a
commit c824fb5e9b
5 changed files with 6 additions and 3 deletions
@@ -0,0 +1,81 @@
package server.logic.ws_protocol.JSON.debug;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import java.util.List;
import java.util.UUID;
/**
* Потокобезопасный in-memory буфер debug-логов.
*/
public final class DebugRunLogBuffer {
public static final class Entry {
public long ts;
public String level;
public String runId;
public String source;
public String sessionId;
public String login;
public String message;
public String details;
}
private static final DebugRunLogBuffer INSTANCE = new DebugRunLogBuffer(5_000);
public static DebugRunLogBuffer getInstance() {
return INSTANCE;
}
private final int capacity;
private final Deque<Entry> entries = new ArrayDeque<>();
private DebugRunLogBuffer(int capacity) {
this.capacity = Math.max(100, capacity);
}
public synchronized String newRunId() {
return "dbg-" + UUID.randomUUID();
}
public synchronized void clear() {
entries.clear();
}
public synchronized void add(String level, String runId, String source, String sessionId, String login, String message, String details) {
Entry e = new Entry();
e.ts = System.currentTimeMillis();
e.level = safe(level, "info");
e.runId = safe(runId, "");
e.source = safe(source, "server");
e.sessionId = safe(sessionId, "");
e.login = safe(login, "");
e.message = safe(message, "");
e.details = safe(details, "");
entries.addLast(e);
while (entries.size() > capacity) {
entries.removeFirst();
}
}
public synchronized List<Entry> tail(int limit, String runIdFilter) {
int capped = Math.max(1, Math.min(limit, 1000));
String filter = safe(runIdFilter, "");
List<Entry> out = new ArrayList<>(capped);
Object[] arr = entries.toArray();
for (int i = arr.length - 1; i >= 0 && out.size() < capped; i--) {
Entry e = (Entry) arr[i];
if (!filter.isBlank() && !filter.equals(e.runId)) continue;
out.add(e);
}
return out;
}
private static String safe(String value, String fallback) {
String s = value == null ? "" : value.trim();
return s.isBlank() ? fallback : s;
}
}
@@ -2,8 +2,8 @@ package server.logic.ws_protocol.JSON.handlers.system;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import server.debug.DebugRunLogBuffer;
import server.logic.ws_protocol.JSON.ConnectionContext;
import server.logic.ws_protocol.JSON.debug.DebugRunLogBuffer;
import server.logic.ws_protocol.JSON.entyties.Net_Request;
import server.logic.ws_protocol.JSON.entyties.Net_Response;
import server.logic.ws_protocol.JSON.handlers.JsonMessageHandler;