全部產品
Search
文件中心

Simple Log Service:HarmonyOS SDK概述

更新時間:Jun 30, 2024

阿里雲Log ServiceSLS提供日誌採集用戶端HarmonyOS SDK,支援採集各類鴻蒙裝置的日誌。HarmonyOS SDK通過ArkTS封裝實現,使用C語言編寫。

版本說明

Log ServiceHarmonyOS SDK版本通過OpenHarmony三方庫中心託管發布。更多資訊,請參見Aliyun Log HarmonyOS SDK Release

範例程式碼

Log ServiceHarmonyOS 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產生的費用和使用控制台產生的費用一致。更多資訊,請參見計費概述

相關文檔