Kumpulkan data log dari perangkat HarmonyOS menggunakan Simple Log Service HarmonyOS SDK.
Prasyarat
Simple Log Service HarmonyOS SDK telah diinstal. Untuk informasi selengkapnya, lihat Install the HarmonyOS SDK.
Inisialisasi SDK
Gunakan kode berikut untuk menginisialisasi 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>" // Diperlukan hanya ketika AccessKey diperoleh melalui STS.
);
Tabel berikut menjelaskan parameter tersebut.
|
Variable |
Description |
Example |
|
endpoint |
Endpoint adalah nama domain untuk mengakses Simple Log Service. Endpoint bergantung pada wilayah proyek. Untuk informasi selengkapnya, lihat Endpoints. |
cn-hangzhou.log.aliyuncs.com |
|
project |
Project name: Proyek adalah unit manajemen sumber daya dalam Simple Log Service. Proyek merupakan batas utama untuk isolasi pengguna dan kontrol akses. Untuk informasi selengkapnya, lihat Manage projects. |
test-project |
|
logstore |
Logstore name: Logstore adalah unit dalam Simple Log Service untuk mengumpulkan, menyimpan, dan mengkueri data log. Untuk informasi selengkapnya, lihat Manage Logstores. |
test-logstore |
|
accesskey id |
AccessKey ID digunakan untuk mengidentifikasi pengguna. Untuk informasi selengkapnya, lihat AccessKey pair. Ikuti prinsip hak istimewa minimal dan berikan hanya izin yang diperlukan kepada Pengguna RAM. Untuk informasi tentang cara memberikan izin, lihat Create a RAM user and grant permissions dan Examples of custom RAM authorization. |
None |
|
accesskey secret |
Rahasia AccessKey adalah kunci yang digunakan untuk mengenkripsi string signature. Simple Log Service menggunakan kunci ini untuk memverifikasi string signature. Simpan rahasia AccessKey Anda secara rahasia. |
None |
|
accesskey token |
Token AccessKey. Ini diperlukan hanya ketika AccessKey diperoleh melalui STS. |
Laporkan log
Gunakan metode addLog untuk melaporkan log bisnis kustom.
let code = aliyunLog.addLog(new Map(
[
["key1", "value1"],
["key2", "value2"],
["key3", "value3"],
]
));
Log berhasil dilaporkan hanya jika code == 0. Untuk informasi selengkapnya tentang kode status lainnya, lihat Status codes.
Konfigurasi AccessKey
SDK mendukung pembaruan AccessKey secara dinamis. Gunakan kode berikut untuk memperbarui AccessKey:
aliyunLog.setAccessKey(
"<your accesskey id>", // Masukkan ID AccessKey yang benar.
"<your accesskey secret>", // Masukkan rahasia AccessKey yang benar.
null // Masukkan token AccessKey yang benar. Ini diperlukan hanya ketika AccessKey diperoleh melalui STS.
);
Tetapkan callback pengiriman log
Anda dapat menetapkan callback pengiriman log untuk menerima notifikasi status setiap upaya pengiriman log. Callback ini dapat digunakan untuk memantau operasi SDK atau memperbarui parameter.
class MyLogCallback implements LogCallback {
init() {
aliyunLog.setLogCallback(this);
}
onLogCallback(logStore:string, code:number, logBytes:number, compressedBytes:number, errorMessage:string) {
// Kode kesalahan 6 menunjukkan bahwa AccessKey tidak valid.
// Kode kesalahan 11 menunjukkan kesalahan konfigurasi parameter.
if (code == 6 || code == 11) {
aliyunLog.setAccessKey(
"<your accesskey id>", // Masukkan ID AccessKey yang benar.
"<your accesskey secret>", // Masukkan rahasia AccessKey yang benar.
null // Masukkan token AccessKey yang benar. Ini diperlukan hanya ketika AccessKey diperoleh melalui STS.
);
}
}
}
Status codes
|
Status code |
Description |
Solution |
|
0 |
Success |
Normal. Tidak perlu tindakan apa pun. |
|
1 |
SDK telah dihapus atau tidak valid. |
Periksa apakah inisialisasi SDK gagal. |
|
2 |
Kesalahan penulisan data. |
Proyek telah mencapai batas trafik tulisnya. Jika Anda memerlukan batas yang lebih tinggi, submit a ticket untuk menghubungi dukungan teknis. |
|
3 |
Cache penuh. |
submit a ticket untuk menghubungi dukungan teknis. |
|
4 |
Kesalahan jaringan. |
Periksa konektivitas jaringan Anda dan coba lagi operasi tersebut. |
|
5 |
Kuota tulis proyek penuh. |
Proyek telah mencapai batas trafik tulisnya. Jika Anda memerlukan batas yang lebih tinggi, submit a ticket untuk menghubungi dukungan teknis. |
|
6 |
AccessKey telah kedaluwarsa atau tidak valid. |
AccessKey telah kedaluwarsa atau tidak valid, atau kebijakan akses akun tempat AccessKey tersebut berasal salah. Periksa kebijakan akses Pengguna RAM. Pengguna RAM harus memiliki izin untuk melakukan operasi pada resource Simple Log Service. Untuk informasi selengkapnya, lihat Grant permissions to a RAM user. |
|
7 |
Kesalahan layanan. |
Terjadi gangguan layanan. submit a ticket untuk menghubungi dukungan teknis. |
|
8 |
Data dibuang. |
Kesalahan ini biasanya terjadi karena waktu perangkat tidak tersinkronisasi dengan waktu server. SDK secara otomatis mengirim ulang data tersebut. |
|
9 |
Waktu perangkat tidak tersinkronisasi dengan waktu server. |
Waktu perangkat tidak tersinkronisasi dengan waktu server. SDK secara otomatis menyelesaikan masalah ini. |
|
10 |
Data cache tidak dikirim saat SDK dihapus. |
Hal ini dapat menyebabkan kehilangan data. Anda dapat mengaktifkan fitur unggah yang dapat dilanjutkan untuk mencegah kehilangan data. |
|
11 |
Kesalahan parameter inisialisasi SDK. |
Kesalahan ini biasanya terjadi karena AccessKey belum dikonfigurasi, atau endpoint, proyek, atau Logstore dikonfigurasi secara salah. Periksa pengaturan parameter dan coba lagi. |
|
99 |
Gagal menulis data cache ke disk. |
Operasi tulis gagal karena jalur file cache salah, cache penuh, atau ruang disk tidak mencukupi. |