provider log start interface to ui showing and fix bug of feedbugmanager to stop logcatch
This commit is contained in:
@@ -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> {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -27,7 +27,7 @@ interface IDevaToolsProvider : IProvider {
|
||||
/**
|
||||
* 停止i抓取日志
|
||||
*/
|
||||
fun stopLogCatch()
|
||||
fun stopLogCatch(logPrefixName: String?)
|
||||
|
||||
/**
|
||||
* 获取链路信息
|
||||
|
||||
@@ -7,6 +7,13 @@ import com.mogo.eagle.core.data.deva.scene.SceneModule
|
||||
*/
|
||||
interface IMoGoDevaToolsListener {
|
||||
|
||||
/**
|
||||
* 日志抓取开始回调
|
||||
*/
|
||||
fun onLogCatchStart(){
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 日志抓取关闭回调(日志抓取忘记关闭,默认设置时长计时返回)
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -36,8 +36,8 @@ object CallerDevaToolsManager {
|
||||
/**
|
||||
* 停止抓取全量日志
|
||||
*/
|
||||
fun stopCatchLog() {
|
||||
devaToolsProviderApi?.stopLogCatch()
|
||||
fun stopCatchLog(logPrefixName:String? = null) {
|
||||
devaToolsProviderApi?.stopLogCatch(logPrefixName)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user