鸿蒙开发之崩溃信息收集FaultLogger
2023-12-28 11:51:05
前申:果然系统的API没有让我失望,日志完全看不出来崩溃原因所在
一、使用
logCrash() {
FaultLogger.query(FaultLogger.FaultType.JS_CRASH,(err,val) => {
if (err) {
console.log('fault log get an err'+JSON.stringify(err))
return
}
let len = val.length
for (let i = 0; i < len; i++) {
//FaultLogInfo
let logInfo = val[i]
console.log('fault log reason '+logInfo.reason)
console.log('fault log pid'+logInfo.pid)
console.log('fault log uid'+logInfo.uid)
console.log('fault log type'+logInfo.type)
console.log('fault log timestamp'+logInfo.timestamp)
console.log('fault log module'+logInfo.module)
console.log('fault log summary'+logInfo.summary)
console.log('fault log fullLog'+logInfo.fullLog)
console.log('========== fault log end ==========')
}
})
}
贴一下打印结果:
这个打印结果让我很迷茫啊,这能给我带来什么信息呢?reason没有,fullLog也啥有用信息没有。唉~~
不过,还是记录一下这个API吧。
API官方解释可以通过FaultLogger.query方法获取故障信息,然后通过FaultType的类型来获取不同的故障信息。如:NO_SPECIFIC(不区分故障类型)、APP_FREEZE(应用程序卡死故障类型)、JS_CRASH(JS程序故障类型)和CPP_CRASH(C++程序故障类型)。
二、遇到的注意点
我在制造崩溃的时候开始使用的代码是这样的
makeAFaultCrash() {
let names: string[] = []
//制造一个数组越界的崩溃
console.log('制造一个崩溃'+(names[2]))
}
这在ArkTS中不会崩溃,除非我对names[2]再调用方法才会崩溃,即
makeAFaultCrash() {
let names: string[] = []
//这样才会崩溃
console.log('制造一个崩溃'+(names[2]).length)
}
文章来源:https://blog.csdn.net/Lu_Ca/article/details/135261852
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!