From bfa9c1a697c0e7124bc465d59d9a5b1ff3c7ce24 Mon Sep 17 00:00:00 2001 From: Glavo Date: Wed, 30 Apr 2025 14:56:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=90=AF=E5=8A=A8=E5=99=A8?= =?UTF-8?q?=E6=9C=AA=E5=8E=8B=E7=BC=A9=E6=97=A5=E5=BF=97=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20(#3877)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jackhuang/hmcl/util/logging/Logger.java | 50 +++++++++---------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/logging/Logger.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/logging/Logger.java index 771fcce0d..0fe72dadc 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/logging/Logger.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/logging/Logger.java @@ -143,35 +143,33 @@ public final class Logger { log(Level.WARNING, caller, "Failed to list log files in " + dir, e); } - if (list.size() <= logRetention) { - return; - } + if (list.size() > logRetention) { + list.sort((a, b) -> { + int[] v1 = a.getValue(); + int[] v2 = b.getValue(); - list.sort((a, b) -> { - int[] v1 = a.getValue(); - int[] v2 = b.getValue(); + assert v1.length == v2.length; - assert v1.length == v2.length; - - for (int i = 0; i < v1.length; i++) { - int c = Integer.compare(v1[i], v2[i]); - if (c != 0) - return c; - } - - return 0; - }); - - for (int i = 0, end = list.size() - logRetention; i < end; i++) { - Path file = list.get(i).getKey(); - - try { - if (!Files.isSameFile(file, logFile)) { - log(Level.INFO, caller, "Delete old log file " + file, null); - Files.delete(file); + for (int i = 0; i < v1.length; i++) { + int c = Integer.compare(v1[i], v2[i]); + if (c != 0) + return c; + } + + return 0; + }); + + for (int i = 0, end = list.size() - logRetention; i < end; i++) { + Path file = list.get(i).getKey(); + + try { + if (!Files.isSameFile(file, logFile)) { + log(Level.INFO, caller, "Delete old log file " + file, null); + Files.delete(file); + } + } catch (IOException e) { + log(Level.WARNING, caller, "Failed to delete log file " + file, e); } - } catch (IOException e) { - log(Level.WARNING, caller, "Failed to delete log file " + file, e); } } }