diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java b/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java index 183bad265..586b155e4 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java @@ -258,6 +258,7 @@ public final class Launcher extends Application { LOG.info("HMCL Directory: " + Metadata.HMCL_DIRECTORY); LOG.info("HMCL Jar Path: " + JarUtils.thisJar().map(it -> it.toAbsolutePath().toString()).orElse("Not Found")); LOG.info("Memory: " + Runtime.getRuntime().maxMemory() / 1024 / 1024 + "MB"); + LOG.info("Physical memory: " + OperatingSystem.TOTAL_MEMORY + " MB"); LOG.info("Metaspace: " + ManagementFactory.getMemoryPoolMXBeans().stream() .filter(bean -> bean.getName().equals("Metaspace")) .findAny() diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java index e35255f20..eaad36da6 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java @@ -155,6 +155,7 @@ public class GameCrashWindow extends Stage { boolean hasMultipleRules = results.stream().map(CrashReportAnalyzer.Result::getRule).distinct().count() > 1; if (hasMultipleRules) { segments.addAll(FXUtils.parseSegment(i18n("game.crash.reason.multiple"), Controllers::onHyperlinkAction)); + LOG.log(Level.INFO, "Multiple reasons detected"); } for (CrashReportAnalyzer.Result result : results) { @@ -191,12 +192,15 @@ public class GameCrashWindow extends Stage { break; } segments.add(new Text("\n")); + LOG.log(Level.INFO, "Crash cause: " + result.getRule()); } if (results.isEmpty()) { if (!keywords.isEmpty()) { reasonTextFlow.getChildren().setAll(new Text(i18n("game.crash.reason.stacktrace", String.join(", ", keywords)))); + LOG.log(Level.INFO, "Crash reason unknown, but some log keywords have been found: " + String.join(", ", keywords)); } else { reasonTextFlow.getChildren().setAll(FXUtils.parseSegment(i18n("game.crash.reason.unknown"), Controllers::onHyperlinkAction)); + LOG.log(Level.INFO, "Crash reason unknown"); } feedbackTextFlow.setVisible(true);