From f72a61e6036d594dc34c056508aa997f63ad8d11 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 30 Apr 2024 12:24:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=BF=90=E7=BB=B4=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xypower/common/ZipUtils.java | 2 +- .../java/com/xypower/mpmaster/AppMaster.java | 72 +++++++++++++++++++ .../com/xypower/mpmaster/MpMasterService.java | 8 +++ 3 files changed, 81 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/com/xypower/common/ZipUtils.java b/common/src/main/java/com/xypower/common/ZipUtils.java index d43fafba..701ac236 100644 --- a/common/src/main/java/com/xypower/common/ZipUtils.java +++ b/common/src/main/java/com/xypower/common/ZipUtils.java @@ -51,7 +51,7 @@ public class ZipUtils { } // for (int i = 0; i < fileList.length; i++) { - if (fileList[i].startsWith("specdata")) { + if (fileList[i].startsWith("specdata") || fileList[i].endsWith(".lck")) { continue; } ZipFiles(srcFileParentName + srcFileName + "/", fileList[i], zipOutputSteam); diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java b/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java index 84066053..ce8b7372 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java @@ -410,6 +410,7 @@ public class AppMaster { } else if (TextUtils.equals(cmd, CMD_UPLOAD_LOGS)) { String url = jsonObject.optString("url", null); uploadLogs(url); + uploadMasterLogs(url); } else if (TextUtils.equals(cmd, CMD_SET_CMA)) { String ip = jsonObject.optString("value_str", null); int port = jsonObject.optInt("value_int", 0); @@ -717,6 +718,77 @@ public class AppMaster { } } + private void uploadMasterLogs(String url) { + String appDir = mService.buildAppDir(); + + try { + + long ts = System.currentTimeMillis();//long now = android.os.SystemClock.uptimeMillis(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); + Date dt = new Date(ts); + + final String fileName = mCmdid + "_mst_" + format.format(dt) + ".zip"; + final File file = File.createTempFile(fileName, null, new File(appDir)); + if (file == null) { + return; + } + + final String mpAppDir = MicroPhotoContext.buildMasterAppDir(mService.getApplicationContext()); + final File logDir = new File(mpAppDir + "logs" + File.separator); + if (!logDir.exists()) { + return; + } + + ZipUtils.ZipFolder(logDir, file); + + if (!file.exists()) { + return; + } + + FileUploader fileUploader = new FileUploader(url); + fileUploader.addFilePart("file", file, fileName, "application/x-zip-compressed"); + + String response = fileUploader.finish(); + if (response != null) { + + } + } catch (Exception ex) { + + } + } + + private void uploadLogs(String url, String tempPath, String path, String ext, String uploadFileName) { + + try { + + final File pathFile = new File(path); + if (!pathFile.exists()) { + return; + } + + final File file = File.createTempFile(uploadFileName, null, new File(tempPath)); + if (file == null) { + return; + } + + ZipUtils.ZipFolder(pathFile, file); + + if (!file.exists()) { + return; + } + + FileUploader fileUploader = new FileUploader(url); + fileUploader.addFilePart("file", file, uploadFileName, "application/x-zip-compressed"); + + String response = fileUploader.finish(); + if (response != null) { + + } + } catch (Exception ex) { + + } + } + private void uploadFiles(String url, List paths) { String appDir = mService.buildAppDir(); diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java index c02ef15d..3b9927f4 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java @@ -155,6 +155,7 @@ public class MpMasterService extends Service { fileHandler = new FileHandler(logFile.getAbsolutePath(), true);//true表示日志内容在文件中追加 fileHandler.setLevel(Level.ALL);//级别为ALL,记录所有消息 + // fileHandler. fileHandler.setFormatter(logFormatter); logger.addHandler(fileHandler); @@ -237,6 +238,13 @@ public class MpMasterService extends Service { unregisterReceiver(mScreenaAtionReceiver); unregisterReceiver(mUpdateReceiver); + for (java.util.logging.Handler h : logger.getHandlers()) { + try { + h.close(); + } catch (Exception ex) { + } + } + super.onDestroy(); }