Untuk mengunggah log operasional aplikasi, log sistem operasi, dan log pengguna ke Simple Log Service, Anda dapat menggunakan metode PutLogs yang disediakan oleh Simple Log Service SDK untuk Java. Topik ini menjelaskan cara menggunakan Simple Log Service SDK untuk Java untuk menulis log ke Simple Log Service.
Prasyarat
Simple Log Service telah diaktifkan. Untuk informasi lebih lanjut, lihat Aktifkan Simple Log Service.
Simple Log Service SDK untuk Java telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Simple Log Service SDK untuk Java.
Batasan
Mekanisme dasar dari Aliyun Log Java Producer memanggil operasi PutLogs untuk mengunggah log. Ukuran log mentah yang dapat diunggah setiap kali dibatasi. Untuk informasi lebih lanjut, lihat Pembacaan dan penulisan data.
Sumber daya dasar Simple Log Service, seperti proyek, penyimpanan log, shard, dan grup mesin, juga memiliki batasan. Untuk informasi lebih lanjut, lihat Sumber daya dasar.
Pertama kali Anda menjalankan kode, Anda harus mengaktifkan fitur pengindeksan untuk penyimpanan log Anda di konsol Simple Log Service. Kemudian, tunggu sekitar satu menit sebelum melakukan kueri log.
Jika Anda mengkueri log di konsol Simple Log Service dan panjang nilai suatu bidang dalam log yang dikembalikan melebihi batas atas, nilai bidang tersebut akan dipotong, dan bagian yang berlebih tidak akan digunakan untuk analisis. Untuk informasi lebih lanjut, lihat Buat indeks.
Penulisan umum dan penulisan di lokasi tertentu
public PutLogsResponse PutLogs(String project, String logStore,
String topic, List<LogItem> logItems, String source,
String shardHash)Parameter
Parameter | Tipe | Diperlukan | Deskripsi |
project | String | Ya | Proyek tujuan. |
logStore | String | Ya | Penyimpanan Log tujuan. |
topic | String | Tidak | Topik log. |
logItems | List | Ya | Log atau beberapa log yang ingin Anda unggah. Anda harus mengunggah log atau beberapa log dalam format LogItem. |
source | String | Tidak | Sumber log. Catatan Jika Anda meninggalkan parameter ini kosong, alamat IP host tempat produser berada akan digunakan secara otomatis. |
shardHash | String | Tidak | ID hash lokasi tempat Anda ingin mengunggah log. |
Contoh kode
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.LogContent;
import com.aliyun.openservices.log.common.LogItem;
import com.aliyun.openservices.log.exception.LogException;
import java.util.ArrayList;
import java.util.List;
public class PutLogsTest {
public static void main(String[] args) throws LogException {
/**
* Dalam contoh ini, ID AccessKey dan rahasia AccessKey diperoleh dari variabel lingkungan.
*/
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
/**
* Titik akhir Simple Log Service. Dalam contoh ini, titik akhir Simple Log Service untuk wilayah China (Hangzhou) digunakan. Ganti nilai parameter dengan titik akhir aktual.
*/
String host = "cn-hangzhou.log.aliyuncs.com";
/**
* Buat klien Simple Log Service.
*/
Client client = new Client(host, accessId, accessKey);
String project = "ali-project-test";
String logStore = "test-logstore";
String topic = "";
String source = "";
LogContent logContent = new LogContent("message", "2021-05-15 16:43:35 ParameterInvalid 400\n" +
"com.aliyun.openservices.log.exception.LogException:The body is not valid json string.\n" +
"at com.aliyun.openservices.log.Client.ErrorCheck(Client.java:2161)\n" +
"at com.aliyun.openservices.log.Client.SendData(Client.java:2312)\n" +
"at com.aliyun.openservices.log.Client.PullLogsk(Client.java:1397)\n" +
"at com.aliyun.openservices.log.Client.SendData(Client.java:2265)\n" +
"at com.aliyun.openservices.log.Client.GetCursor(Client.java:1123)\n" +
"at com.aliyun.openservices.log.Client.PullLogs(Client.java:2161)\n" +
"at com.aliyun.openservices.log.Client.ErrorCheck(Client.java:2426)\n" +
"at transformEvent.main(transformEvent.java:2559)");
List<LogItem> logItems = new ArrayList<>();
for (int i = 0; i < 5; ++i) {
LogItem logItem = new LogItem();
logItem.PushBack("language", "android");
logItem.PushBack("time", String.valueOf(System.currentTimeMillis()));
logItem.PushBack(logContent);
logItems.add(logItem);
}
client.PutLogs(project, logStore, topic, logItems, source, null);
}
}Apa yang harus dilakukan selanjutnya
Anda dapat menggunakan Simple Log Service SDK untuk Java untuk mengkueri log. Untuk informasi lebih lanjut, lihat Gunakan GetLogs untuk mengkueri log.
Anda dapat memanggil operasi untuk mengkueri log. Untuk informasi lebih lanjut, lihat GetLogsV2.
Anda dapat mengkueri log di konsol Simple Log Service. Untuk informasi lebih lanjut, lihat Panduan untuk kueri dan analisis log.
Referensi
Anda dapat menggunakan Simple Log Service SDK untuk Java untuk membuat proyek dan Logstore. Untuk informasi lebih lanjut, lihat Memulai dengan Simple Log Service SDK untuk Java.
Anda dapat mengompres log dan mengunggah log ke Simple Log Service secara batch. Untuk informasi lebih lanjut, lihat Gunakan Aliyun Log Java Producer untuk menulis log ke Simple Log Service.
Jika respons yang dikembalikan oleh Simple Log Service berisi informasi kesalahan setelah Anda menggunakan Simple Log Service SDK untuk Java, pemanggilan gagal. Anda dapat menganalisis kesalahan berdasarkan kode kesalahan yang dikembalikan ketika pemanggilan API gagal. Untuk informasi lebih lanjut, lihat Kode kesalahan.