阿里云日志服务SLS提供日志采集客户端HarmonyOS SDK,支持采集各类鸿蒙设备的日志。HarmonyOS SDK通过ArkTS封装实现,使用C语言编写。
版本说明
日志服务HarmonyOS SDK版本通过OpenHarmony三方库中心托管发布。更多信息,请参见Aliyun Log HarmonyOS SDK Release。
示例代码
日志服务HarmonyOS SDK提供相应的示例代码,方便您参考或直接使用。
import hilog from '@ohos.hilog';
// 导入SDK模块
import { AliyunLog, LogCallback } from "@aliyunsls/producer"
// 初始化SDK
let aliyunLog: AliyunLog = new AliyunLog(
"<your endpoint>",
"<your project>",
"<your logstore>",
"<your accesskey id>",
"<your accesskey secret>",
"<your accesskey token>" // 仅当AccessKey是通过STS方式获取时才需要
);
// 写入日志
aliyunLog.addLog(new Map(
[
["key1", "value1"],
["key2", "value2"],
["key3", "value3"],
]
));
class MyLog implements LogCallback {
// 设置SDK日志回调
init() {
aliyunLog.setLogCallback(this);
}
// 写入日志
addLog() {
aliyunLog.addLog(new Map([
["key1", "val1"],
["key2", "val2"],
["key3", "val3"],
["key4", "val4"],
]))
}
// 处理日志回调
// code错误码说明参见后续文档
onLogCallback(logStore: string, code: number, logBytes: number, compressedBytes: number, errorMessage: string) {
hilog.info(0x0000,
'testTag',
'onLogCallback. logStore: %{public}s, code: %{public}d, logBytes: %{public}d, compressedBytes: %{public}d, errorMessage: %{public}s',
logStore, code, logBytes, compressedBytes, errorMessage
);
aliyunLog.setAccessKey(
"<your accesskey id>", // 填入正确的AccessKey Id
"<your accesskey secret>", // 填入正确的AccessKey Secret
null // 填入正确的AccessKey Token. 只有当AccessKey是通过STS方式获取时才需要
);
}
}
@Entry
@Component
struct Index {
@State message: string = 'Hello World'
private log: MyLog = new MyLog();
build() {
Row() {
Column() {
Text("Init")
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(() => {
this.log.init();
});
Text("Add")
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(() => {
this.log.addLog();
})
}
.width('100%')
}
.height('100%')
}
}
费用说明
使用HarmonyOS SDK产生的费用和使用控制台产生的费用一致。更多信息,请参见计费概述。
相关文档
安装HarmonyOS SDK请参见安装HarmonyOS SDK。
HarmonyOS SDK快速入门请参见HarmonyOS SDK快速入门。