From 0d0fa50beb74827058067215335239ae4b7e94f8 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 29 Mar 2022 14:47:45 +0800 Subject: [PATCH] provider log start interface to ui showing and fix bug of feedbugmanager to stop logcatch --- .../DevaToolsProvider.kt | 4 +-- .../feedback/FeedbackManager.kt | 3 +- .../logcatch/MogoLogCatchManager.kt | 34 ++++++++++++------- .../hmi/ui/setting/DebugSettingView.kt | 5 +++ .../api/devatools/IDevaToolsProvider.kt | 2 +- .../api/devatools/IMoGoDevaToolsListener.kt | 7 ++++ .../CallerDevaToolsListenerManager.kt | 7 ++++ .../call/devatools/CallerDevaToolsManager.kt | 4 +-- 8 files changed, 47 insertions(+), 19 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index 46270dfc08..d74fa5a33a 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -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 { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt index 8184e369f3..a1032bd60f 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt @@ -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 { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt index 941d21a0ee..6a761ab21c 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt @@ -37,6 +37,7 @@ object MogoLogCatchManager : IMogoOnMessageListener, 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, 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, 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, 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, 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) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index 5d89eb3ab2..21a25409f3 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -965,6 +965,11 @@ class DebugSettingView @JvmOverloads constructor( } CallerDevaToolsListenerManager.registerDevaToolsLogCatchListener(TAG, object : IMoGoDevaToolsListener { + override fun onLogCatchStart() { + super.onLogCatchStart() + tbLogCatch.isChecked = true + } + override fun onLogCatchClose() { super.onLogCatchClose() tbLogCatch.isChecked = false diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt index 6e0cf18547..1c49d1b112 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt @@ -27,7 +27,7 @@ interface IDevaToolsProvider : IProvider { /** * 停止i抓取日志 */ - fun stopLogCatch() + fun stopLogCatch(logPrefixName: String?) /** * 获取链路信息 diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IMoGoDevaToolsListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IMoGoDevaToolsListener.kt index 54742a3d82..021bfe69fa 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IMoGoDevaToolsListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IMoGoDevaToolsListener.kt @@ -7,6 +7,13 @@ import com.mogo.eagle.core.data.deva.scene.SceneModule */ interface IMoGoDevaToolsListener { + /** + * 日志抓取开始回调 + */ + fun onLogCatchStart(){ + + } + /** * 日志抓取关闭回调(日志抓取忘记关闭,默认设置时长计时返回) */ diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsListenerManager.kt index 3009b4de04..1363dd2dad 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsListenerManager.kt @@ -51,6 +51,13 @@ object CallerDevaToolsListenerManager { } } + fun invokeDevaToolsLogCatchStart() { + M_DEVA_TOOLS_LISTENER.forEach { + val listener = it.value + listener.onLogCatchStart() + } + } + fun invokeDevaToolsLogCatchClose() { M_DEVA_TOOLS_LISTENER.forEach { val listener = it.value diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt index 1350291189..b018c1edf3 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt @@ -36,8 +36,8 @@ object CallerDevaToolsManager { /** * 停止抓取全量日志 */ - fun stopCatchLog() { - devaToolsProviderApi?.stopLogCatch() + fun stopCatchLog(logPrefixName:String? = null) { + devaToolsProviderApi?.stopLogCatch(logPrefixName) } /**