文档

HarmonyOS SDK概述

更新时间:

阿里云日志服务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产生的费用和使用控制台产生的费用一致。更多信息,请参见计费概述

相关文档