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()
}