provider log start interface to ui showing and fix bug of feedbugmanager to stop logcatch

This commit is contained in:
zhongchao
2022-03-29 14:47:45 +08:00
parent 9cee7a84e7
commit 0d0fa50beb
8 changed files with 47 additions and 19 deletions

View File

@@ -40,8 +40,8 @@ class DevaToolsProvider : IDevaToolsProvider {
MogoLogCatchManager.startCatchLog(duration, logPrefixName)
}
override fun stopLogCatch() {
MogoLogCatchManager.stopCatchLog()
override fun stopLogCatch(logPrefixName: String?) {
MogoLogCatchManager.stopCatchLog(logPrefixName)
}
override fun getTraceInfo(): HashMap<Int, ChainLogParam> {

View File

@@ -169,8 +169,9 @@ internal object FeedbackManager {
}
private fun stopRecordLog(newRecord: AutoPilotRecord) {
val prefix = newRecord.fileName?.split(File.separator)?.last()?.substringBeforeLast(".")?.let { "BadCase-$it" } ?: "BadCase-${SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.getDefault()).format(Date())}"
CallerLogger.d("${M_DEVA}${TAG}", "录制Bag完成, 触发结束录制全量日志 ...")
CallerDevaToolsManager.startCatchLog()
CallerDevaToolsManager.stopCatchLog(prefix)
}
private suspend fun upload(ctx: Context, badCase: BadCase, checked: Reason, record: AutoPilotRecord): Boolean {

View File

@@ -37,6 +37,7 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
private const val TAG = "MogoLogCatchManager"
private const val MSG_TRY_CLOSE_LOG = 1001
private const val MSG_TRY_START_LOG = 1002
private var mContext: Context? = null
@@ -107,10 +108,16 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
}
override fun handleMessage(msg: Message): Boolean {
if (msg.what == MSG_TRY_CLOSE_LOG) {
CallerDevaToolsListenerManager.invokeDevaToolsLogCatchClose()
closeLoggerLevel()
return true
when(msg.what){
MSG_TRY_CLOSE_LOG -> {
CallerDevaToolsListenerManager.invokeDevaToolsLogCatchClose()
closeLoggerLevel()
return true
}
MSG_TRY_START_LOG -> {
CallerDevaToolsListenerManager.invokeDevaToolsLogCatchStart()
return true
}
}
return false
}
@@ -127,13 +134,14 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
}
}
fun stopCatchLog() {
fun stopCatchLog(logPrefixName: String? = null) {
CallerLogger.d("$M_DEVA$TAG", "结束抓取日志====")
manualContent.type = STOP_CATCH_LOG
stopCatchLog(manualContent)
stopCatchLog(manualContent, logPrefixName)
}
private fun startCatchLog(content: RemoteLogPushContent, logPrefixName: String? = null) {
CallerLogger.d("$M_DEVA$TAG", "startCatchLog path : ${content.pkgName + logPrefixName}")
catchingList.add(content.pkgName + logPrefixName)
var delay = (content.duration).toLong()
handler.removeMessages(MSG_TRY_CLOSE_LOG)
@@ -144,10 +152,6 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
handler.sendEmptyMessageDelayed(MSG_TRY_CLOSE_LOG, delay * 1000L * 60)
openLoggerLevel()
CallerLogger.d(
"$M_DEVA$TAG",
"createPushLogInfoManager pkgName : ${content.pkgName} , duration : ${content.duration}"
)
logInfoManager = LogInfoManagerFactory.createPushLogInfoManager(
mContext,
MoGoAiCloudClientConfig.getInstance().sn,
@@ -156,19 +160,23 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
content,
this
)
CallerLogger.d("$M_DEVA$TAG", "start : ${logInfoManager.toString()}")
logInfoManager?.start()
logInfoManager?.registerLogOutListener { lineLog ->
CallerDevaToolsListenerManager.invokeDevaToolsLogCatchLines(lineLog)
}
handler.sendEmptyMessage(MSG_TRY_START_LOG)
SharedPrefsMgr.getInstance(mContext!!).putBoolean(MoGoConfig.CATCH_LOG, true)
SharedPrefsMgr.getInstance(mContext!!)
.putLong(MoGoConfig.CATCH_LOG_TIME, System.currentTimeMillis())
}
private fun stopCatchLog(content: RemoteLogPushContent) {
catchingList.remove(content.pkgName)
private fun stopCatchLog(content: RemoteLogPushContent, logPrefixName: String? = null) {
CallerLogger.d("$M_DEVA$TAG", "stopCatchLog path : ${content.pkgName + logPrefixName}")
if (!catchingList.contains(content.pkgName + logPrefixName)) {
return
}
catchingList.remove(content.pkgName + logPrefixName)
if (catchingList.isEmpty()) {
handler.removeMessages(MSG_TRY_CLOSE_LOG)
}