From 119f28d6ce249c3a6407311454f270d4042553e9 Mon Sep 17 00:00:00 2001 From: renwj Date: Thu, 11 Apr 2024 18:26:51 +0800 Subject: [PATCH] =?UTF-8?q?[6.4.0][=E5=85=A8=E9=87=8F=E6=97=A5=E5=BF=97]?= =?UTF-8?q?=20debug=E7=89=88=E6=9C=AC=E6=94=BE=E5=BC=80crash=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=94=B6=E9=9B=86=EF=BC=9B=E8=A7=A6=E5=8F=91=E5=85=A8?= =?UTF-8?q?=E9=87=8F=E6=97=A5=E5=BF=97=E4=B8=8A=E4=BC=A0=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E9=99=84=E5=B8=A6=E5=B0=86=E6=9C=AA=E4=B8=8A=E4=BC=A0=E7=9A=84?= =?UTF-8?q?=E9=93=BE=E8=B7=AF=E6=97=A5=E5=BF=97=E4=B9=9F=E6=89=93=E5=8C=85?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.gradle | 2 +- .../logcat/MoGoLogRecordProviderImpl.kt | 58 ++++++++++++------- .../core/utilcode/download/DownloadUtils.kt | 9 +++ 3 files changed, 47 insertions(+), 22 deletions(-) diff --git a/config.gradle b/config.gradle index 7ee8c77407..2e42f48ff5 100644 --- a/config.gradle +++ b/config.gradle @@ -225,7 +225,7 @@ ext { btrace : "com.bytedance.btrace:rhea-core:2.0.0", mofang_runtime : "com.mogo.eagle.core.mofang:runtime:2.0.11", - log_runtime : "com.mogo.eagle.core.log.record:runtime:1.0.50", + log_runtime : "com.mogo.eagle.core.log.record:runtime:1.0.80", // 安全证书 passport_secret : "com.zhidaoauto:sdk-java:1.0.6-SNAPSHOT", diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcat/MoGoLogRecordProviderImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcat/MoGoLogRecordProviderImpl.kt index ecab17f24d..80b845d927 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcat/MoGoLogRecordProviderImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcat/MoGoLogRecordProviderImpl.kt @@ -4,6 +4,7 @@ import android.Manifest import android.content.* import android.content.pm.PackageManager.PERMISSION_GRANTED import android.os.Build +import android.os.Environment import android.os.Process import android.os.SystemClock import android.util.Log @@ -14,10 +15,13 @@ import com.mogo.commons.AbsMogoApplication import com.mogo.core.log.record.* import com.mogo.core.log.record.config.* import com.mogo.core.log.record.config.crash.CrashConfig +import com.mogo.core.log.record.config.extra.IExtraFileToUpload +import com.mogo.core.log.record.config.extra.ToUploadFile import com.mogo.core.log.record.config.state.IStateProvider import com.mogo.core.log.record.model.UploadError import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.function.api.devatools.logcat.* +import com.mogo.eagle.core.utilcode.download.DownloadUtils import com.zhidao.loglib.bean.RemoteLogPushContent import com.zhjt.mogo_core_function_devatools.BuildConfig import com.zhjt.mogo_core_function_devatools.logcat.checker.AnrLogChecker @@ -25,6 +29,7 @@ import com.zhjt.mogo_core_function_devatools.logcat.config.LogRecordConfig import com.zhjt.mogo_core_function_devatools.logcat.uploader.* import kotlinx.coroutines.* import java.io.* +import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit.MINUTES import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicLong @@ -45,13 +50,12 @@ internal class MoGoLogRecordProviderImpl: IMoGoLogRecordProvider, private val lastUploadTime by lazy { AtomicLong(0) } override fun init(context: Context) { - val zip = File(context.getExternalFilesDir(null), "logcat/zip") val builder = LogcatConfig.Builder().context(context) .recordPeriod(MINUTES.toMillis(5)) // 5分钟一个文件 .maxSizeInLogDir((512 * 1024 * 1024).toLong()) // 512M最大容量 .recordDir(File(context.getExternalFilesDir(null), "logcat")) .pid(Process.myPid()) - .generateZipDir(zip.absolutePath) + .generateZipDir(File(context.getExternalFilesDir(null), "logcat/zip").absolutePath) .stateProvider(object : IStateProvider { override fun provide(divider: String?): Map { return mutableMapOf().also { itx -> @@ -104,6 +108,18 @@ internal class MoGoLogRecordProviderImpl: IMoGoLogRecordProvider, itx["协议版本号"] = AppConfigInfo.protocolVersionNumber itx["${divider}-7"] = divider itx["角色"] = AppConfigInfo.role + val downloads = try { + DownloadUtils.getAllDownloadRecords() + } catch (t: Throwable) { + emptyList() + } + if (downloads.isNotEmpty()) { + itx["${divider}-7"] = divider + itx["下载汇总"] = "(${downloads.size})" + downloads.forEach { + itx[it.first] = "\n\r----------------------------------------------------------${it.second}\n\r" + } + } } } }) @@ -114,26 +130,26 @@ internal class MoGoLogRecordProviderImpl: IMoGoLogRecordProvider, .systemTags("ActivityManager") .checker(AnrLogChecker()) } - -// if (BuildConfig.DEBUG) { -// builder.crashConfig( -// CrashConfig.Builder() -// .enabled(true) -// .crashDir(File(context.getExternalFilesDir(null), "logcat/crash")) -// .nativeCrash(true) -// .anr(true) -// .javaCrash(true) -// .build() -// ) -// } - LogcatManager.init(builder) - scope.launch { - try { - zip.takeIf { it.exists() }?.deleteRecursively() - } catch (t: Throwable) { - t.printStackTrace() - } + if (BuildConfig.DEBUG) { + builder.crashConfig( + CrashConfig.Builder() + .enabled(true) + .crashDir(File(context.getExternalFilesDir(null), "crash")) + .expireDuration(TimeUnit.DAYS.toMillis(3)) + .javaCrash(true) + .nativeCrash(true) + .anr(true) + .build() + ) } + builder.extraFilesToUpload(object : IExtraFileToUpload { + override fun filesToUpload(): List { + return ArrayList().also { + it.add(ToUploadFile(File(Environment.getExternalStorageDirectory(), "MLog"))) + } + } + }) + LogcatManager.init(builder) } override fun target(): Class { diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/download/DownloadUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/download/DownloadUtils.kt index c4891e5acd..8e11869b47 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/download/DownloadUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/download/DownloadUtils.kt @@ -84,4 +84,13 @@ object DownloadUtils { } .launchIn(scope) } + + fun getAllDownloadRecords(): List> { + if (Downloader.hasInit()) { + return runBlocking { + Downloader.getAllDownloadRecords() ?: emptyList() + } + } + return emptyList() + } } \ No newline at end of file