[6.3.0][日志] 代码逻辑优化

This commit is contained in:
renwj
2024-03-11 19:05:07 +08:00
parent fd6116feaa
commit 3b819318da
2 changed files with 33 additions and 9 deletions

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.zhjt.mogo_core_function_devatools">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
@@ -9,4 +10,6 @@
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_LOGS"
tools:ignore="ProtectedPermissions" />
</manifest>

View File

@@ -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<String, Any?> {
override fun provide(divider: String?): Map<String, Any?> {
return mutableMapOf<String, Any?>().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()
}