故障日志獲取

2024-01-23 17:16 更新
說明

本模塊首批接口從API version 8開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。

導入模塊

  1. import faultLogger from '@ohos.faultLogger'

FaultType

故障類型枚舉。

系統(tǒng)能力: SystemCapability.HiviewDFX.Hiview.FaultLogger

名稱

說明

NO_SPECIFIC

0

不區(qū)分故障類型

CPP_CRASH

2

C++程序故障類型

JS_CRASH

3

JS程序故障類型

APP_FREEZE

4

應用程序卡死故障類型

FaultLogInfo

故障信息數(shù)據(jù)結構,獲取到的故障信息的數(shù)據(jù)結構。

系統(tǒng)能力: SystemCapability.HiviewDFX.Hiview.FaultLogger

名稱

類型

必填

說明

pid

number

故障進程的進程id

uid

number

故障進程的用戶id

type

FaultType

故障類型

timestamp

number

日志生成時的秒級時間戳

reason

string

發(fā)生故障的原因

module

string

發(fā)生故障的模塊

summary

string

故障的概要

fullLog

string

故障日志全文

faultLogger.query9+

query(faultType: FaultType, callback: AsyncCallback<Array<FaultLogInfo>>) : void

獲取當前進程故障信息,該方法通過回調方式獲取故障信息數(shù)組,故障信息數(shù)組內最多上報10份故障信息。

系統(tǒng)能力: SystemCapability.HiviewDFX.Hiview.FaultLogger

參數(shù):

參數(shù)名

類型

必填

說明

faultType

FaultType

輸入要查詢的故障類型。

callback

AsyncCallback<Array<FaultLogInfo>>

回調函數(shù),在回調函數(shù)中獲取故障信息數(shù)組。

- value拿到故障信息數(shù)組;value為undefined表示獲取過程中出現(xiàn)異常,error返回錯誤提示字符串

錯誤碼:

以下錯誤碼的詳細介紹參見ohos.faultLogger錯誤碼。

錯誤碼ID

錯誤信息

10600001

The service is not started or is faulty

示例:

  1. function queryFaultLogCallback(error, value) {
  2. if (error) {
  3. console.info('error is ' + error);
  4. } else {
  5. console.info("value length is " + value.length);
  6. let len = value.length;
  7. for (let i = 0; i < len; i++) {
  8. console.info("log: " + i);
  9. console.info("Log pid: " + value[i].pid);
  10. console.info("Log uid: " + value[i].uid);
  11. console.info("Log type: " + value[i].type);
  12. console.info("Log timestamp: " + value[i].timestamp);
  13. console.info("Log reason: " + value[i].reason);
  14. console.info("Log module: " + value[i].module);
  15. console.info("Log summary: " + value[i].summary);
  16. console.info("Log text: " + value[i].fullLog);
  17. }
  18. }
  19. }
  20. try {
  21. faultLogger.query(faultLogger.FaultType.JS_CRASH, queryFaultLogCallback);
  22. } catch (err) {
  23. console.error(`code: ${err.code}, message: ${err.message}`);
  24. }

faultLogger.query9+

query(faultType: FaultType) : Promise<Array<FaultLogInfo>>

獲取當前進程故障信息,該方法通過Promise方式返回故障信息數(shù)組,故障信息數(shù)組內最多上報10份故障信息。

系統(tǒng)能力: SystemCapability.HiviewDFX.Hiview.FaultLogger

參數(shù):

參數(shù)名

類型

必填

說明

faultType

FaultType

輸入要查詢的故障類型。

返回值:

類型

說明

Promise<Array<FaultLogInfo>>

Promise實例,可以在其then()方法中獲取故障信息實例,也可以使用await。

- value拿到故障信息數(shù)組;value為undefined表示獲取過程中出現(xiàn)異常

錯誤碼:

以下錯誤碼的詳細介紹參見ohos.faultLogger錯誤碼

錯誤碼ID

錯誤信息

10600001

The service is not started or is faulty

示例:

  1. async function getLog() {
  2. try {
  3. let value = await faultLogger.query(faultLogger.FaultType.JS_CRASH);
  4. if (value) {
  5. console.info("value length is " + value.length);
  6. let len = value.length;
  7. for (let i = 0; i < len; i++) {
  8. console.info("log: " + i);
  9. console.info("Log pid: " + value[i].pid);
  10. console.info("Log uid: " + value[i].uid);
  11. console.info("Log type: " + value[i].type);
  12. console.info("Log timestamp: " + value[i].timestamp);
  13. console.info("Log reason: " + value[i].reason);
  14. console.info("Log module: " + value[i].module);
  15. console.info("Log summary: " + value[i].summary);
  16. console.info("Log text: " + value[i].fullLog);
  17. }
  18. }
  19. } catch (err) {
  20. console.error(`code: ${err.code}, message: ${err.message}`);
  21. }
  22. }

faultLogger.querySelfFaultLog(deprecated)

querySelfFaultLog(faultType: FaultType, callback: AsyncCallback<Array<FaultLogInfo>>) : void

說明

從API version 9開始廢棄,建議使用faultLogger.query替代。

獲取當前進程故障信息,該方法通過回調方式獲取故障信息數(shù)組,故障信息數(shù)組內最多上報10份故障信息。

系統(tǒng)能力: SystemCapability.HiviewDFX.Hiview.FaultLogger

參數(shù):

參數(shù)名

類型

必填

說明

faultType

FaultType

輸入要查詢的故障類型。

callback

AsyncCallback<Array<FaultLogInfo>>

回調函數(shù),在回調函數(shù)中獲取故障信息數(shù)組。

- value拿到故障信息數(shù)組;value為undefined表示獲取過程中出現(xiàn)異常,error返回錯誤提示字符串

示例:

  1. function queryFaultLogCallback(error, value) {
  2. if (error) {
  3. console.info('error is ' + error);
  4. } else {
  5. console.info("value length is " + value.length);
  6. let len = value.length;
  7. for (let i = 0; i < len; i++) {
  8. console.info("log: " + i);
  9. console.info("Log pid: " + value[i].pid);
  10. console.info("Log uid: " + value[i].uid);
  11. console.info("Log type: " + value[i].type);
  12. console.info("Log timestamp: " + value[i].timestamp);
  13. console.info("Log reason: " + value[i].reason);
  14. console.info("Log module: " + value[i].module);
  15. console.info("Log summary: " + value[i].summary);
  16. console.info("Log text: " + value[i].fullLog);
  17. }
  18. }
  19. }
  20. faultLogger.querySelfFaultLog(faultLogger.FaultType.JS_CRASH, queryFaultLogCallback);

faultLogger.querySelfFaultLog(deprecated)

querySelfFaultLog(faultType: FaultType) : Promise<Array<FaultLogInfo>>

說明

從API version 9開始廢棄,建議使用faultLogger.query替代。

獲取當前進程故障信息,該方法通過Promise方式返回故障信息數(shù)組,故障信息數(shù)組內最多上報10份故障信息。

系統(tǒng)能力: SystemCapability.HiviewDFX.Hiview.FaultLogger

參數(shù):

參數(shù)名

類型

必填

說明

faultType

FaultType

輸入要查詢的故障類型。

返回值:

類型

說明

Promise<Array<FaultLogInfo>>

Promise實例,可以在其then()方法中獲取故障信息實例,也可以使用await。

- value拿到故障信息數(shù)組;value為undefined表示獲取過程中出現(xiàn)異常

示例:

  1. async function getLog() {
  2. let value = await faultLogger.querySelfFaultLog(faultLogger.FaultType.JS_CRASH);
  3. if (value) {
  4. console.info("value length is " + value.length);
  5. let len = value.length;
  6. for (let i = 0; i < len; i++) {
  7. console.info("log: " + i);
  8. console.info("Log pid: " + value[i].pid);
  9. console.info("Log uid: " + value[i].uid);
  10. console.info("Log type: " + value[i].type);
  11. console.info("Log timestamp: " + value[i].timestamp);
  12. console.info("Log reason: " + value[i].reason);
  13. console.info("Log module: " + value[i].module);
  14. console.info("Log summary: " + value[i].summary);
  15. console.info("Log text: " + value[i].fullLog);
  16. }
  17. }
  18. }
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號