diff --git a/core/function-impl/mogo-core-function-devatools/src/main/AndroidManifest.xml b/core/function-impl/mogo-core-function-devatools/src/main/AndroidManifest.xml index 56b7521c8a..d1d7f7fbd6 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/AndroidManifest.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ @@ -9,4 +10,6 @@ + \ No newline at end of file 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 b63c0a8d85..ecab17f24d 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 @@ -1,20 +1,25 @@ package com.zhjt.mogo_core_function_devatools.logcat +import android.Manifest import android.content.* +import android.content.pm.PackageManager.PERMISSION_GRANTED import android.os.Build import android.os.Process import android.os.SystemClock import android.util.Log +import androidx.core.app.ActivityCompat import com.mogo.aicloud.services.socket.IMogoOnMessageListener import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager 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.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.zhidao.loglib.bean.RemoteLogPushContent +import com.zhjt.mogo_core_function_devatools.BuildConfig import com.zhjt.mogo_core_function_devatools.logcat.checker.AnrLogChecker import com.zhjt.mogo_core_function_devatools.logcat.config.LogRecordConfig import com.zhjt.mogo_core_function_devatools.logcat.uploader.* @@ -40,15 +45,15 @@ internal class MoGoLogRecordProviderImpl: IMoGoLogRecordProvider, private val lastUploadTime by lazy { AtomicLong(0) } override fun init(context: Context) { - val zipDir = File(context.getExternalFilesDir(null), "logcat/zip") - LogcatManager.init(LogcatConfig.Builder().context(context) - .recordPeriod(MINUTES.toMillis(1)) // 1分钟一个文件 + 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(zipDir.absolutePath) + .generateZipDir(zip.absolutePath) .stateProvider(object : IStateProvider { - override fun provide(divider:String?): Map { + override fun provide(divider: String?): Map { return mutableMapOf().also { itx -> itx["build_sdk_version"] = Build.VERSION.SDK_INT itx["build_device"] = Build.DEVICE @@ -103,12 +108,28 @@ internal class MoGoLogRecordProviderImpl: IMoGoLogRecordProvider, } }) .ignoreTags(" OpenGLRenderer") - .systemTags(" ActivityManager") - .checker(AnrLogChecker()) - .uploader(LogRecordUploader())) + .uploader(LogRecordUploader()) + if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_LOGS) == PERMISSION_GRANTED) { + builder + .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 { - zipDir.takeIf { it.exists() }?.deleteRecursively() + zip.takeIf { it.exists() }?.deleteRecursively() } catch (t: Throwable) { t.printStackTrace() }