[3.3.0][日志] 在调试面板添加导出全量日志入口

This commit is contained in:
renwj
2023-07-04 12:03:26 +08:00
parent 840a7a7a58
commit aa1e40a8ca
7 changed files with 113 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ import android.os.Process
import android.util.*
import com.mogo.core.log.record.*
import com.mogo.core.log.record.config.*
import com.mogo.core.log.record.config.crash.*
import com.mogo.eagle.core.function.api.devatools.logcat.*
import com.mogo.eagle.core.utilcode.util.*
import com.zhjt.mogo_core_function_devatools.logcat.uploader.*
@@ -20,12 +21,31 @@ internal class MoGoLogRecordProviderImpl: IMoGoLogRecordProvider {
private val scope by lazy { CoroutineScope(Dispatchers.IO + SupervisorJob()) }
override fun init(context: Context) {
val zipDir = File(context.getExternalFilesDir(null), "logcat/zip")
LogcatManager.init(LogcatConfig.Builder().context(context)
.recordPeriod(MINUTES.toMillis(3))
.maxSizeInLogDir((1 * 1024 * 1024 * 1024).toLong()) //1G的最大容量
.recordPeriod(MINUTES.toMillis(1)) // 1分钟一个文件
.maxSizeInLogDir((512 * 1024 * 1024).toLong()) // 512M最大容量
.recordDir(File(context.getExternalFilesDir(null), "logcat"))
.pid(Process.myPid())
.generateZipDir(zipDir.absolutePath)
.crashConfig(CrashConfig.Builder()
.enabled(true)
.crashDir(File(context.getExternalFilesDir(null), "logcat/crash"))
.javaCrash(true)
.anr(true)
.build())
.uploader(LogRecordUploader()))
scope.launch {
try {
if (zipDir.exists()) {
zipDir.listFiles()?.forEach {
it.delete()
}
}
} catch (t: Throwable) {
t.printStackTrace()
}
}
}
@@ -51,4 +71,8 @@ internal class MoGoLogRecordProviderImpl: IMoGoLogRecordProvider {
Log.d(TAG, "上传日志:[startTime:$startTime, endTime: $endTime], 结果: $result")
}
}
override fun export(): File? {
return LogcatManager.export()
}
}