From 5a4a0dae15d83f036d4d9ab7c8015ac9eff31107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BB=BA=E5=9B=BD?= Date: Thu, 20 Feb 2025 16:11:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(show):=20=E6=89=93=E5=BC=80=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在托盘菜单中添加"打开日志"选项 - 实现日志路径获取方法 - 修改文件扫描逻辑,使用 Base64 编码 - 更新项目版本号至 0.1.6.9 --- pom.xml | 2 +- src/main/java/org/aohe/control/Operational.java | 9 +++------ src/main/java/org/aohe/show/TrayFrameUtf8.java | 16 +++++++++++++++- src/main/java/org/aohe/utils/LogUtil.java | 17 +++++++++++++++++ 4 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 src/main/java/org/aohe/utils/LogUtil.java diff --git a/pom.xml b/pom.xml index ad3702e..f3db7ad 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.aohe twain-service - 0.1.6.7 + 0.1.6.9 8 diff --git a/src/main/java/org/aohe/control/Operational.java b/src/main/java/org/aohe/control/Operational.java index 91c54e3..e96095f 100644 --- a/src/main/java/org/aohe/control/Operational.java +++ b/src/main/java/org/aohe/control/Operational.java @@ -1,7 +1,6 @@ package org.aohe.control; import cn.hutool.core.codec.Base64; -import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.Console; import com.alibaba.fastjson2.JSONObject; import lombok.extern.slf4j.Slf4j; @@ -234,13 +233,11 @@ public class Operational { initSettings(source); source.setName(name); List fileList = source.scan(); - List filePath = new ArrayList<>(); + List base64Files = new ArrayList<>(); for (File file : fileList){ - String absolutePath = FileUtil.getAbsolutePath(file); - filePath.add(absolutePath); + base64Files.add(Base64.encode(file)); } - - return R.ok(filePath); + return R.ok(base64Files); } private static void initSettings(Source source) { diff --git a/src/main/java/org/aohe/show/TrayFrameUtf8.java b/src/main/java/org/aohe/show/TrayFrameUtf8.java index f6c3666..656a6de 100644 --- a/src/main/java/org/aohe/show/TrayFrameUtf8.java +++ b/src/main/java/org/aohe/show/TrayFrameUtf8.java @@ -2,12 +2,14 @@ package org.aohe.show; import lombok.extern.slf4j.Slf4j; import org.aohe.constant.SocketEnum; +import org.aohe.utils.LogUtil; import org.aohe.web.SocketUtils; import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -55,6 +57,7 @@ public class TrayFrameUtf8 { JMenuItem startServiceItem = new JMenuItem("启动服务"); JMenuItem stopServiceItem = new JMenuItem("停止服务"); + JMenuItem logItem = new JMenuItem("打开日志"); startServiceItem.setEnabled(false); stopServiceItem.setEnabled(true); startServiceItem.addActionListener(e ->{ @@ -75,10 +78,21 @@ public class TrayFrameUtf8 { log.info("服务已停止"); }); + logItem.addActionListener(e -> { + try { + String logPath = LogUtil.getLogPath(); + Desktop.getDesktop().open(new File(logPath)); + } catch (IOException ex) { + log.info("打开文件出现错误..."); + throw new RuntimeException(ex); + } + }); + jPopupMenu.add(startServiceItem); jPopupMenu.add(stopServiceItem); - + jPopupMenu.add(logItem); + jPopupMenu.add(showMainFrame); jPopupMenu.add(exit); Image image = IconUtil.getIcon(); diff --git a/src/main/java/org/aohe/utils/LogUtil.java b/src/main/java/org/aohe/utils/LogUtil.java new file mode 100644 index 0000000..39069a8 --- /dev/null +++ b/src/main/java/org/aohe/utils/LogUtil.java @@ -0,0 +1,17 @@ +package org.aohe.utils; + +import ch.qos.logback.classic.LoggerContext; +import ch.qos.logback.core.FileAppender; +import org.slf4j.LoggerFactory; +import java.io.File; +import java.io.IOException; + +public class LogUtil { + public static String getLogPath() throws IOException { + LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); + ch.qos.logback.classic.Logger logger = context.getLogger("ROOT"); + FileAppender fileAppender = (FileAppender) logger.getAppender("file");//"file"是 logback 配置中,输出日志文件的 appender 的 name 属性 + File file = new File(fileAppender.getFile()); + return file.getCanonicalPath(); + } +}