[6.3.0][日志] 代码逻辑优化
This commit is contained in:
@@ -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>
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user