Debug: add stdout/stderr capture, log game logs to console

This commit is contained in:
SashegDev
2026-05-08 17:36:49 +00:00
parent fd6e292d6e
commit 1e7231af57
2 changed files with 11 additions and 4 deletions
@@ -62,32 +62,38 @@ public class LaunchService {
ProcessBuilder processBuilder = new ProcessBuilder(command); ProcessBuilder processBuilder = new ProcessBuilder(command);
processBuilder.directory(instance.getPath().toFile()); processBuilder.directory(instance.getPath().toFile());
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start(); Process process = processBuilder.start();
System.out.println("[LAUNCH] Process started, pid=" + process.pid());
// Capture output // Capture output (stdout)
Thread outThread = new Thread(() -> { Thread outThread = new Thread(() -> {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) { try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
String line; String line;
while ((line = reader.readLine()) != null) { while ((line = reader.readLine()) != null) {
System.out.println("[STDOUT] " + line);
JFXLauncher.appendGameLog(line); JFXLauncher.appendGameLog(line);
} }
} catch (Exception e) { } catch (Exception e) {
JFXLauncher.appendGameLog("[Ошибка чтения вывода: " + e.getMessage() + "]"); System.out.println("[STDOUT ERROR] " + e.getMessage());
JFXLauncher.appendGameLog("[Ошибка чтения вывода: " + e.getMessage());
} }
}); });
outThread.setDaemon(true); outThread.setDaemon(true);
outThread.start(); outThread.start();
// Capture errors // Capture errors (stderr)
Thread errThread = new Thread(() -> { Thread errThread = new Thread(() -> {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()))) { try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()))) {
String line; String line;
while ((line = reader.readLine()) != null) { while ((line = reader.readLine()) != null) {
System.out.println("[STDERR] " + line);
JFXLauncher.appendGameLog("[ERR] " + line); JFXLauncher.appendGameLog("[ERR] " + line);
} }
} catch (Exception e) { } catch (Exception e) {
JFXLauncher.appendGameLog("[Ошибка чтения ошибок: " + e.getMessage() + "]"); System.out.println("[STDERR ERROR] " + e.getMessage());
JFXLauncher.appendGameLog("[Ошибка чтения ошибок: " + e.getMessage());
} }
}); });
errThread.setDaemon(true); errThread.setDaemon(true);
@@ -41,6 +41,7 @@ public class JFXLauncher extends Application {
private Stage mainStage; private Stage mainStage;
public static void appendGameLog(String log) { public static void appendGameLog(String log) {
System.out.println("[GAMELOG] " + log);
synchronized (gameLogBuffer) { synchronized (gameLogBuffer) {
gameLogBuffer.append(log).append("\n"); gameLogBuffer.append(log).append("\n");