Recopile datos de registro de dispositivos HarmonyOS mediante el SDK de HarmonyOS de Simple Log Service.
Requisitos previos
El SDK de HarmonyOS de Simple Log Service está instalado. Para obtener más información, consulte Install the HarmonyOS SDK.
Inicializar el SDK
Use el siguiente código para inicializar el SDK.
import { AliyunLog, LogCallback } from "@aliyunsls/producer"
let aliyunLog: AliyunLog = new AliyunLog(
"<your endpoint>",
"<your project>",
"<your logstore>",
"<your accesskey id>",
"<your accesskey secret>",
"<your accesskey token>" // Required only when the AccessKey is obtained through STS.
);
En la tabla a continuación se describen los parámetros.
|
Variable |
Descripción |
Ejemplo |
|
endpoint |
El endpoint es el nombre de dominio para acceder a Simple Log Service. El endpoint depende de la región del proyecto. Para obtener más información, consulte Endpoints. |
cn-hangzhou.log.aliyuncs.com |
|
project |
Project name: Un proyecto es una unidad de gestión de recursos en Simple Log Service. Constituye el límite principal para el aislamiento de usuarios y el control de acceso. Para obtener más información, consulte Manage projects. |
test-project |
|
logstore |
Logstore name: Un Logstore es la unidad en Simple Log Service para recopilar, almacenar y consultar datos de registro. Para obtener más información, consulte Manage Logstores. |
test-logstore |
|
accesskey id |
El AccessKey ID identifica a un usuario. Para obtener más información, consulte AccessKey pair. Siga el principio de menor privilegio y conceda solo los permisos necesarios a los usuarios de RAM. Para obtener más información sobre cómo conceder permisos, consulte Create a RAM user and grant permissions y Examples of custom RAM authorization. |
Ninguna |
|
accesskey secret |
El AccessKey secret es una clave que cifra las cadenas de firma. Simple Log Service usa esta clave para verificar dichas cadenas. Mantenga su AccessKey secret en confidencialidad. |
Ninguna |
|
accesskey token |
Token de AccessKey. Solo es obligatorio cuando el AccessKey se obtiene mediante STS. |
Enviar registros
Use el método addLog para enviar registros de negocio personalizados.
let code = aliyunLog.addLog(new Map(
[
["key1", "value1"],
["key2", "value2"],
["key3", "value3"],
]
));
Un registro se envía correctamente solo cuando code == 0. Para obtener más información sobre otros códigos de estado, consulte Status codes.
Configurar un AccessKey
El SDK admite actualizaciones dinámicas de AccessKey. Use el siguiente código para actualizarlo:
aliyunLog.setAccessKey(
"<your accesskey id>", // Enter the correct AccessKey ID.
"<your accesskey secret>", // Enter the correct AccessKey secret.
null // Enter the correct AccessKey token. This is required only when the AccessKey is obtained through STS.
);
Establecer una devolución de llamada de envío de registros
Establezca una devolución de llamada de envío de registros para recibir notificaciones de estado de cada intento de entrega. Úsela para supervisar las operaciones del SDK o actualizar parámetros.
class MyLogCallback implements LogCallback {
init() {
aliyunLog.setLogCallback(this);
}
onLogCallback(logStore:string, code:number, logBytes:number, compressedBytes:number, errorMessage:string) {
// An error code of 6 indicates that the AccessKey is invalid.
// An error code of 11 indicates a parameter configuration error.
if (code == 6 || code == 11) {
aliyunLog.setAccessKey(
"<your accesskey id>", // Enter the correct AccessKey ID.
"<your accesskey secret>", // Enter the correct AccessKey secret.
null // Enter the correct AccessKey token. This is required only when the AccessKey is obtained through STS.
);
}
}
}
Códigos de estado
|
Código de estado |
Descripción |
Solución |
|
0 |
Correcto |
Normal. No se requiere ninguna acción. |
|
1 |
El SDK está destruido o no es válido. |
Compruebe si falló la inicialización del SDK. |
|
2 |
Error de escritura de datos. |
El proyecto alcanzó su límite de tráfico de escritura. Si necesita un límite mayor, envíe un ticket para ponerse en contacto con el soporte técnico. |
|
3 |
La caché está llena. |
envíe un ticket para ponerse en contacto con el soporte técnico. |
|
4 |
Error de red. |
Compruebe la conectividad de red y reintente la operación. |
|
5 |
Se agotó la cuota de escritura del proyecto. |
El proyecto alcanzó su límite de tráfico de escritura. Si necesita un límite mayor, envíe un ticket para ponerse en contacto con el soporte técnico. |
|
6 |
El AccessKey caducó o no es válido. |
El AccessKey caducó o no es válido, o bien la directiva de acceso de la cuenta asociada es incorrecta. Compruebe la directiva de acceso del usuario de RAM. Este debe tener permisos para operar en recursos de Simple Log Service. Para obtener más información, consulte Grant permissions to a RAM user. |
|
7 |
Error del servicio. |
Se produjo un error en el servicio. envíe un ticket para ponerse en contacto con el soporte técnico. |
|
8 |
Datos descartados. |
Este error suele ocurrir porque la hora del dispositivo no está sincronizada con la del servidor. El SDK reenvía automáticamente los datos. |
|
9 |
La hora del dispositivo no está sincronizada con la del servidor. |
La hora del dispositivo no está sincronizada con la del servidor. El SDK resuelve este problema automáticamente. |
|
10 |
Los datos en caché no se enviaron al destruirse el SDK. |
Esto puede provocar pérdida de datos. Habilite la función de carga reanudable para evitarlo. |
|
11 |
Error en el parámetro de inicialización del SDK. |
Este error suele ocurrir porque el AccessKey no está configurado, o porque el endpoint, el proyecto o el Logstore tienen una configuración incorrecta. Compruebe los parámetros e inténtelo de nuevo. |
|
99 |
Error al escribir datos en caché en el disco. |
La operación de escritura falla porque la ruta del archivo de caché es incorrecta, la caché está llena o el espacio en disco es insuficiente. |