@ohos.faultLogger (FaultLogger)

NOTE

The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Modules to Import

import faultLogger from '@ohos.faultLogger'

FaultType

Enumerates the fault types.

System capability: SystemCapability.HiviewDFX.Hiview.FaultLogger

Name Value Description
NO_SPECIFIC 0 No specific fault type.
CPP_CRASH 2 C++ program crash.
JS_CRASH 3 JS program crash.
APP_FREEZE 4 Application freezing.

FaultLogInfo

Defines the data structure of the fault log information.

System capability: SystemCapability.HiviewDFX.Hiview.FaultLogger

Name Type Mandatory Description
pid number Yes Process ID of the faulty process.
uid number Yes User ID of the faulty process.
type FaultType Yes Fault type.
timestamp number Yes Second-level timestamp when the log was generated.
reason string Yes Reason for the fault.
module string Yes Module on which the fault occurred.
summary string Yes Summary of the fault.
fullLog string Yes Full log text.

faultLogger.query9+

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

Obtains the fault information about the current process. This API uses an asynchronous callback to return the fault information array obtained, which contains a maximum of 10 pieces of fault information.

System capability: SystemCapability.HiviewDFX.Hiview.FaultLogger

Parameters

Name Type Mandatory Description
faultType FaultType Yes Fault type.
callback AsyncCallback<Array<FaultLogInfo>> Yes Callback used to return the fault information array.
The value is the fault information array obtained. If the value is undefined, an exception occurs during the information retrieval. In this case, an error string will be returned.

Error codes

For details about the error codes, see FaultLogger Error Codes.

ID Error Message
10600001 The service is not started or is faulty

Example

function queryFaultLogCallback(error, value) {
    if (error) {
        console.info('error is ' + error);
    } else {
        console.info("value length is " + value.length);
        let len = value.length;
        for (let i = 0; i < len; i++) {
            console.info("log: " + i);
            console.info("Log pid: " + value[i].pid);
            console.info("Log uid: " + value[i].uid);
            console.info("Log type: " + value[i].type);
            console.info("Log timestamp: " + value[i].timestamp);
            console.info("Log reason: " + value[i].reason);
            console.info("Log module: " + value[i].module);
            console.info("Log summary: " + value[i].summary);
            console.info("Log text: " + value[i].fullLog);
        }
    }
}
try {
    faultLogger.query(faultLogger.FaultType.JS_CRASH, queryFaultLogCallback);
} catch (err) {
    console.error(`code: ${err.code}, message: ${err.message}`);
}

faultLogger.query9+

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

Obtains the fault information about the current process. This API uses a promise to return the fault information array obtained, which contains a maximum of 10 pieces of fault information.

System capability: SystemCapability.HiviewDFX.Hiview.FaultLogger

Parameters

Name Type Mandatory Description
faultType FaultType Yes Fault type.

Return value

Type Description
Promise<Array<FaultLogInfo>> Promise used to return the fault information array. You can obtain the fault information instance in its then() method or use await.
The value is the fault information array obtained. If the value is undefined, an exception occurs during the information retrieval.

Error codes

For details about the error codes, see FaultLogger Error Codes.

ID Error Message
10600001 The service is not started or is faulty

Example

async function getLog() {
    try {
        let value = await faultLogger.query(faultLogger.FaultType.JS_CRASH);
        if (value) {
            console.info("value length is " + value.length);
            let len = value.length;
            for (let i = 0; i < len; i++) {
                console.info("log: " + i);
                console.info("Log pid: " + value[i].pid);
                console.info("Log uid: " + value[i].uid);
                console.info("Log type: " + value[i].type);
                console.info("Log timestamp: " + value[i].timestamp);
                console.info("Log reason: " + value[i].reason);
                console.info("Log module: " + value[i].module);
                console.info("Log summary: " + value[i].summary);
                console.info("Log text: " + value[i].fullLog);
            }
        }
    } catch (err) {
        console.error(`code: ${err.code}, message: ${err.message}`);
    }
}

faultLogger.querySelfFaultLog(deprecated)

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

NOTE

This API is deprecated since API version 9. You are advised to use faultLogger.query instead.

Obtains the fault information about the current process. This API uses an asynchronous callback to return the fault information array obtained, which contains a maximum of 10 pieces of fault information.

System capability: SystemCapability.HiviewDFX.Hiview.FaultLogger

Parameters

Name Type Mandatory Description
faultType FaultType Yes Fault type.
callback AsyncCallback<Array<FaultLogInfo>> Yes Callback used to return the fault information array.
The value is the fault information array obtained. If the value is undefined, an exception occurs during the information retrieval. In this case, an error string will be returned.

Example

function queryFaultLogCallback(error, value) {
    if (error) {
        console.info('error is ' + error);
    } else {
        console.info("value length is " + value.length);
        let len = value.length;
        for (let i = 0; i < len; i++) {
            console.info("log: " + i);
            console.info("Log pid: " + value[i].pid);
            console.info("Log uid: " + value[i].uid);
            console.info("Log type: " + value[i].type);
            console.info("Log timestamp: " + value[i].timestamp);
            console.info("Log reason: " + value[i].reason);
            console.info("Log module: " + value[i].module);
            console.info("Log summary: " + value[i].summary);
            console.info("Log text: " + value[i].fullLog);
        }
    }
}
faultLogger.querySelfFaultLog(faultLogger.FaultType.JS_CRASH, queryFaultLogCallback);

faultLogger.querySelfFaultLog(deprecated)

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

NOTE

This API is deprecated since API version 9. You are advised to use faultLogger.query instead.

Obtains the fault information about the current process. This API uses a promise to return the fault information array obtained, which contains a maximum of 10 pieces of fault information.

System capability: SystemCapability.HiviewDFX.Hiview.FaultLogger

Parameters

Name Type Mandatory Description
faultType FaultType Yes Fault type.

Return value

Type Description
Promise<Array<FaultLogInfo>> Promise used to return the fault information array. You can obtain the fault information instance in its then() method or use await.
The value is the fault information array obtained. If the value is undefined, an exception occurs during the information retrieval.

Example

async function getLog() {
    let value = await faultLogger.querySelfFaultLog(faultLogger.FaultType.JS_CRASH);
    if (value) {
        console.info("value length is " + value.length);
        let len = value.length;
        for (let i = 0; i < len; i++) {
            console.info("log: " + i);
            console.info("Log pid: " + value[i].pid);
            console.info("Log uid: " + value[i].uid);
            console.info("Log type: " + value[i].type);
            console.info("Log timestamp: " + value[i].timestamp);
            console.info("Log reason: " + value[i].reason);
            console.info("Log module: " + value[i].module);
            console.info("Log summary: " + value[i].summary);
            console.info("Log text: " + value[i].fullLog);
        }
    }
}