Setelah mengumpulkan log, Anda dapat memanggil operasi GetLogs untuk mengkueri log yang telah dikumpulkan. Topik ini memberikan contoh cara mengkueri log menggunakan operasi GetLogs.
Prasyarat
Simple Log Service harus diaktifkan. Untuk informasi lebih lanjut, lihat Activate Simple Log Service.
Simple Log Service SDK for Java harus diinisialisasi. Untuk informasi lebih lanjut, lihat Initialize Simple Log Service SDK for Java.
Catatan penggunaan
Dalam contoh ini, endpoint publik Simple Log Service untuk Wilayah China (Hangzhou) digunakan. Endpoint:
https://cn-hangzhou.log.aliyuncs.com.Jika Anda ingin mengakses Simple Log Service dari layanan Alibaba Cloud lainnya yang berada di wilayah yang sama dengan Proyek Anda, Anda dapat menggunakan endpoint internal Simple Log Service, yaitu
https://cn-hangzhou-intranet.log.aliyuncs.com.Untuk informasi lebih lanjut tentang Wilayah dan endpoint yang didukung oleh Simple Log Service, lihat Endpoints.
Panggil metode
IsCompleted()dalam objek tanggapan dari SDK untuk memeriksa apakah kueri mengembalikan set hasil yang lengkap.Jika metode
IsCompleted()mengembalikantrue, kueri berhasil dan set hasilnya lengkap.Jika metode
IsCompleted()mengembalikanfalse, kueri berhasil tetapi set hasilnya tidak lengkap. Anda harus mengulangi permintaan untuk mendapatkan hasil penuh. Untuk informasi lebih lanjut tentang hasil kueri yang tidak lengkap, lihat Kemungkinan Penyebab Kueri yang Tidak Akurat.
Parameter
Parameter permintaan
Nama | Tipe | Diperlukan | Deskripsi |
project | String | Ya | Nama dari proyek. Proyek dalam Simple Log Service digunakan untuk mengisolasi sumber daya pengguna yang berbeda dan mengontrol akses ke sumber daya tertentu. Lihat Kelola sebuah proyek. |
logstore | String | Ya | Nama dari penyimpanan log. Penyimpanan log dalam Simple Log Service digunakan untuk mengumpulkan, menyimpan, dan menanyakan log. Lihat Kelola sebuah penyimpanan log. |
from | int | Ya | Awal rentang waktu untuk kueri. Nilainya adalah Stempel waktu UNIX. Catatan
|
to | int | Ya | Akhir rentang waktu untuk kueri. Nilainya adalah Stempel waktu UNIX. Catatan
|
topic | String | Tidak | Topik dari log. Nilai defaultnya adalah string kosong. Untuk informasi lebih lanjut, lihat Topik log. |
query | String | Tidak | Pernyataan pencarian atau pernyataan analitik. Untuk informasi lebih lanjut, lihat Ikhtisar Kueri dan Analisis. Tambahkan Catatan Jika parameter query berisi pernyataan analitik (pernyataan SQL), parameter baris dan offset dari operasi ini tidak valid. Atur parameter-parameter ini ke 0 dan gunakan klausa LIMIT dalam pernyataan SQL untuk paging. Untuk informasi lebih lanjut, lihat Paginasi hasil kueri dan analisis. |
line | int | Tidak | Parameter ini hanya valid ketika parameter query berisi pernyataan pencarian. Ini menentukan jumlah maksimum log yang akan dikembalikan. Nilainya berkisar dari 0 hingga 100. Nilai defaultnya adalah 100. |
offset | int | Tidak | Parameter ini hanya valid ketika parameter query berisi pernyataan pencarian. Ini menentukan baris dari mana kueri dimulai. Nilai defaultnya adalah 0. |
reverse | boolean | Tidak | Menentukan apakah akan mengembalikan log dalam urutan menurun berdasarkan timestamp mereka. Presisi adalah hingga menit.
Penting
|
powerSql | boolean | Tidak | Menentukan apakah akan menggunakan Dedicated SQL. Untuk informasi lebih lanjut, lihat Kinerja tinggi dan kueri serta analisis akurat (Dedicated SQL).
Selain parameter powerSql, Anda juga dapat menggunakan parameter query untuk mengonfigurasi Dedicated SQL. |
scan | boolean | Tidak | Jika scan disetel ke true, kueri menggunakan mode pemindaian. |
forward | boolean | Tidak | Parameter ini hanya untuk kueri pemindaian. Jika forward disetel ke true, kueri mengambil halaman berikutnya. Jika tidak, kueri mengambil halaman sebelumnya. |
Parameter respons
Untuk informasi lebih lanjut tentang parameter respons, lihat GetLogs - Kueri Log dalam Logstore.
Log mentah
body_bytes_sent:1750
host:www.example.com
http_referer:www.example.com
http_user_agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; it-it) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
http_x_forwarded_for:203.0.XX.XX
remote_addr:203.0.XX.XX
remote_user:p288
request_length:13.741
request_method:GET
request_time:71
request_uri:/request/path-1/file-1
http_code:200
time_local:11/Agt/2021:06:52:27
upstream_response_time:0,66Contoh kueri dan analisis log
Kode Java sampel berikut memberikan contoh cara mengkueri dan menganalisis log.
Saat Anda memanggil operasi GetLogs menggunakan Simple Log Service SDK for Java, perhatikan hal-hal berikut:
Jika parameter
queryhanya berisi pernyataan pencarian, sepertirequest_method:POST, Anda dapat menggunakan parameterlineuntuk menentukan jumlah log yang akan dikembalikan. Nilai maksimum untuk parameter ini adalah 100. Untuk mengembalikan lebih dari 100 log, Anda harus menggunakan klausa LIMIT dalam pernyataan SQL. Untuk informasi lebih lanjut, lihat klausa LIMIT.Jika parameter
queryberisi pernyataan kueri dan analisis, sepertirequest_method:POST | SELECT host, COUNT(*) AS pv GROUP BY host LIMIT 5, parameterlinediabaikan. Anda harus menggunakan klausa LIMIT dalam pernyataan SQL untuk menentukan jumlah baris yang akan dikembalikan. Untuk informasi lebih lanjut, lihat klausa LIMIT.
Untuk informasi lebih lanjut tentang pernyataan kueri, lihat Sintaksis Dasar.
Contoh 1: Meminta log menggunakan kata kunci
Contoh ini menunjukkan cara meminta log menggunakan kata kunci path-0/file-5. Sebuah file GetLogsTest.java dibuat untuk permintaan tersebut. Parameter line diatur ke 3 untuk menentukan bahwa tiga log akan dikembalikan.
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.LogItem;
import com.aliyun.openservices.log.common.QueriedLog;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.GetLogsRequest;
import com.aliyun.openservices.log.response.GetLogsResponse;
public class GetLogsTest {
public static void main(String[] args) throws LogException {
// Contoh ini mendapatkan AccessKey ID dan Rahasia AccessKey dari variabel lingkungan.
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
// Masukkan nama proyek.
String project = "your-project-name";
// Atur titik akhir layanan Simple Log Service. Contoh ini menggunakan Hangzhou sebagai wilayah. Untuk wilayah lainnya, tentukan titik akhir yang sebenarnya.
String host = "cn-hangzhou.log.aliyuncs.com";
// Masukkan nama penyimpanan log.
String logStore = "your-logstore-name";
// Buat klien Simple Log Service.
Client client = new Client(host, accessId, accessKey);
// Jalankan permintaan dalam penyimpanan log yang ditentukan.
try {
// Gunakan kata kunci "path-0/file-5" untuk meminta log.
String query = "path-0/file-5";
int from = 1754449503;
int to = 1754449510;
// Dalam contoh ini, parameter permintaan digunakan untuk mengatur pernyataan pencarian. Parameter baris digunakan untuk mengontrol jumlah log yang dikembalikan. Nilainya adalah 3, dan nilai maksimumnya adalah 100.
GetLogsRequest request = new GetLogsRequest(project, logStore, from, to, "", query);
GetLogsResponse logsResponse = client.GetLogs(request);
System.out.println("-------------Permintaan dimulai.-------------");
System.out.println("Jumlah hasil permintaan yang dikembalikan :" + logsResponse.GetCount());
System.out.println("waktu mulai adalah :" + from);
System.out.println("waktu akhir adalah :" + to);
for (QueriedLog log : logsResponse.getLogs()) {
LogItem item = log.GetLogItem();
System.out.println("waktu log : " + item.mLogTime);
System.out.println("Jsonstring : " + item.ToJsonString());
}
System.out.println("-------------Permintaan selesai.-------------");
} catch (LogException e) {
System.out.println("LogException e :" + e.toString());
System.out.println("kode kesalahan :" + e.GetErrorCode());
System.out.println("pesan kesalahan :" + e.GetErrorMessage());
throw e;
}
}
}Tanggapan:
-------------Permintaan dimulai.-------------
Jumlah hasil permintaan yang dikembalikan :3
waktu mulai adalah :1644573549
waktu akhir adalah :1644573849
waktu log : 1644573808
Jsonstring : {"remote_addr":"203.0.XX.XX","__topic__":"nginx_access_log","request_uri":"/request/path-0/file-5"...}
waktu log : 1644573808
Jsonstring : {"remote_addr":"203.0.XX.XX","__topic__":"nginx_access_log","request_uri":"/request/path-0/file-5"...}
waktu log : 1644573788
Jsonstring : {"remote_addr":"203.0.XX.XX","__topic__":"nginx_access_log","request_uri":"/request/path-0/file-5"...}
-------------Permintaan selesai.-------------
Proses selesai dengan kode keluar 0Contoh 2: Meminta log dengan menentukan bidang
Contoh ini menunjukkan cara meminta log di mana metode permintaan adalah POST. Sebuah file GetLogsTest.java dibuat untuk permintaan tersebut. Parameter line diatur ke 3 untuk menentukan bahwa tiga log akan dikembalikan.
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.LogItem;
import com.aliyun.openservices.log.common.QueriedLog;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.GetLogsRequest;
import com.aliyun.openservices.log.response.GetLogsResponse;
public class GetLogsTest {
public static void main(String[] args) throws LogException {
// Dalam contoh ini, AccessKey ID 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");
// Masukkan nama proyek.
String project = "your-project-name";
// Atur titik akhir Simple Log Service. Contoh ini menggunakan titik akhir wilayah China (Hangzhou). Ganti nilainya dengan titik akhir yang sebenarnya.
String host = "cn-hangzhou.log.aliyuncs.com";
// Masukkan nama penyimpanan log.
String logStore = "your-logstore-name";
// Buat klien Simple Log Service.
Client client = new Client(host, accessId, accessKey);
// Jalankan permintaan dalam penyimpanan log yang ditentukan.
try {
// Permintaan log di mana metode permintaan adalah POST.
String query = "request_method:POST";
// Tetapkan rentang waktu untuk permintaan.
int from = 1754449503;
int to = 1754449510;
// Dalam contoh ini, parameter permintaan menentukan pernyataan pencarian. Parameter baris menentukan jumlah log yang akan dikembalikan. Nilainya adalah 3. Nilai maksimumnya adalah 100.
GetLogsRequest request = new GetLogsRequest(project, logStore, from, to, "", query, 3, 0, true);
GetLogsResponse logsResponse = client.GetLogs(request);
System.out.println("-------------Permintaan dimulai.-------------");
System.out.println("Jumlah hasil permintaan yang dikembalikan :" + logsResponse.GetCount());
System.out.println("waktu mulai adalah :" + from);
System.out.println("waktu akhir adalah :" + to);
for (QueriedLog log : logsResponse.getLogs()) {
LogItem item = log.GetLogItem();
System.out.println("waktu log : " + item.mLogTime);
System.out.println("Jsonstring : " + item.ToJsonString());
}
System.out.println("-------------Permintaan selesai.-------------");
} catch (LogException e) {
System.out.println("LogException e :" + e.toString());
System.out.println("kode kesalahan :" + e.GetErrorCode());
System.out.println("pesan kesalahan :" + e.GetErrorMessage());
throw e;
}
}
}Tanggapan:
-------------Permintaan dimulai.-------------
Jumlah hasil permintaan yang dikembalikan :3
waktu mulai adalah :1644574151
waktu akhir adalah :1644574451
waktu log : 1644574438
Jsonstring : {"remote_addr":"203.0.XX.XX","__topic__":"nginx_access_log","body_bytes_sent":"3604","request_method":"POST"...}
waktu log : 1644574438
Jsonstring : {"remote_addr":"203.0.XX.XX","__topic__":"nginx_access_log","body_bytes_sent":"3369","request_method":"POST"...}
waktu log : 1644574438
Jsonstring : {"remote_addr":"203.0.XX.XX","__topic__":"nginx_access_log","body_bytes_sent":"12714","request_method":"POST"...}
-------------Permintaan selesai.-------------
Proses selesai dengan kode keluar 0Contoh 3: Menganalisis log menggunakan pernyataan SQL
Contoh ini menunjukkan cara meminta log di mana metode permintaan adalah POST dan menghitung jumlah tampilan halaman (PV) untuk permintaan POST. Sebuah file GetLogsTest.java dibuat untuk permintaan tersebut.
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.LogItem;
import com.aliyun.openservices.log.common.QueriedLog;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.GetLogsRequest;
import com.aliyun.openservices.log.response.GetLogsResponse;
public class GetLogsTest {
public static void main(String[] args) throws LogException {
// Dalam contoh ini, AccessKey ID 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");
// Masukkan nama proyek.
String project = "your-project-name";
// Atur titik akhir Simple Log Service. Contoh ini menggunakan titik akhir wilayah China (Hangzhou). Ganti nilainya dengan titik akhir yang sebenarnya.
String host = "cn-hangzhou.log.aliyuncs.com";
// Masukkan nama penyimpanan log.
String logStore = "your-logstore-name";
// Buat klien Simple Log Service.
Client client = new Client(host, accessId, accessKey);
// Jalankan permintaan dalam penyimpanan log yang ditentukan.
try {
// Permintaan log di mana metode permintaan adalah POST dan hitung jumlah PV untuk permintaan POST.
String query = "request_method:POST|select COUNT(*) as pv";
// Tetapkan rentang waktu untuk permintaan.
int from = 1754449503;
int to = 1754449510;
// Dalam contoh ini, parameter permintaan diatur ke pernyataan kueri dan analisis. Parameter baris tidak valid.
GetLogsRequest request = new GetLogsRequest(project, logStore, from, to, "", query);
GetLogsResponse logsResponse = client.GetLogs(request);
System.out.println("-------------Permintaan dimulai.-------------");
System.out.println("Jumlah hasil permintaan yang dikembalikan :" + logsResponse.GetCount());
System.out.println("waktu mulai adalah :" + from);
System.out.println("waktu akhir adalah :" + to);
for (QueriedLog log : logsResponse.getLogs()) {
LogItem item = log.GetLogItem();
System.out.println("waktu log : " + item.mLogTime);
System.out.println("Jsonstring : " + item.ToJsonString());
}
System.out.println("-------------Permintaan selesai.-------------");
} catch (LogException e) {
System.out.println("LogException e :" + e.toString());
System.out.println("kode kesalahan :" + e.GetErrorCode());
System.out.println("pesan kesalahan :" + e.GetErrorMessage());
throw e;
}
}
}Tanggapan:
-------------Permintaan dimulai.-------------
Jumlah hasil permintaan yang dikembalikan :1
waktu mulai adalah :1644574354
waktu akhir adalah :1644574654
waktu log : 1644574354
Jsonstring : {"pv":"162","logtime":1644574354}
-------------Permintaan selesai.-------------
Proses selesai dengan kode keluar 0Contoh 4: Menganalisis log menggunakan klausa GROUP BY
Contoh ini menunjukkan cara meminta log di mana metode permintaan adalah POST dan mengelompokkan hasil berdasarkan host. Sebuah file GetLogsTest.java dibuat untuk permintaan tersebut.
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.LogItem;
import com.aliyun.openservices.log.common.QueriedLog;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.GetLogsRequest;
import com.aliyun.openservices.log.response.GetLogsResponse;
public class GetLogsTest {
public static void main(String[] args) throws LogException {
// Dalam contoh ini, AccessKey ID 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");
// Masukkan nama proyek.
String project = "your-project-name";
// Atur titik akhir Simple Log Service. Contoh ini menggunakan titik akhir wilayah China (Hangzhou). Ganti nilainya dengan titik akhir yang sebenarnya.
String host = "cn-hangzhou.log.aliyuncs.com";
// Masukkan nama penyimpanan log.
String logStore = "your-logstore-name";
// Buat klien Simple Log Service.
Client client = new Client(host, accessId, accessKey);
// Jalankan permintaan dalam penyimpanan log yang ditentukan.
try {
// Permintaan log di mana metode permintaan adalah POST dan kelompokkan hasil berdasarkan host.
// Gunakan klausa LIMIT dalam sintaks SQL untuk membatasi jumlah baris yang dikembalikan menjadi 5.
String query = "request_method:POST|select host, COUNT(*) as pv group by host limit 5";
// Tetapkan rentang waktu untuk permintaan.
int from = 1754449503;
int to = 1754449510;
// Dalam contoh ini, parameter permintaan diatur ke pernyataan kueri dan analisis. Parameter baris tidak valid. Jumlah baris yang dikembalikan ditentukan oleh klausa LIMIT dalam kueri.
GetLogsRequest request = new GetLogsRequest(project, logStore, from, to, "", query);
GetLogsResponse logsResponse = client.GetLogs(request);
System.out.println("-------------Permintaan dimulai.-------------");
System.out.println("Jumlah hasil permintaan yang dikembalikan :" + logsResponse.GetCount());
System.out.println("waktu mulai adalah :" + from);
System.out.println("waktu akhir adalah :" + to);
for (QueriedLog log : logsResponse.getLogs()) {
LogItem item = log.GetLogItem();
System.out.println("waktu log : " + item.mLogTime);
System.out.println("Jsonstring : " + item.ToJsonString());
}
System.out.println("-------------Permintaan selesai.-------------");
} catch (LogException e) {
System.out.println("LogException e :" + e.toString());
System.out.println("kode kesalahan :" + e.GetErrorCode());
System.out.println("pesan kesalahan :" + e.GetErrorMessage());
throw e;
}
}
}Tanggapan:
-------------Permintaan dimulai.-------------
Jumlah hasil permintaan yang dikembalikan :5
waktu mulai adalah :1644574445
waktu akhir adalah :1644574745
waktu log : 1644574445
Jsonstring : {"pv":"1","host":"www.example1.com","logtime":1644574445}
waktu log : 1644574445
Jsonstring : {"pv":"1","host":"www.example.org","logtime":1644574445}
waktu log : 1644574445
Jsonstring : {"pv":"1","host":"www.example.net","logtime":1644574445}
waktu log : 1644574445
Jsonstring : {"pv":"1","host":"www.example.edu","logtime":1644574445}
waktu log : 1644574445
Jsonstring : {"pv":"1","host":"www.aliyundoc.com","logtime":1644574445}
-------------Permintaan selesai.-------------
Proses selesai dengan kode keluar 0Contoh 5: Menganalisis log menggunakan klausa GROUP BY (200 log dikembalikan)
Dalam contoh ini, sebuah file bernama GetLogsTest.java dibuat. File ini digunakan untuk meminta log yang metode permintaannya adalah POST, mengelompokkan log yang diperoleh berdasarkan host, dan mengembalikan maksimal 200 log.
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.LogItem;
import com.aliyun.openservices.log.common.QueriedLog;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.GetLogsRequest;
import com.aliyun.openservices.log.response.GetLogsResponse;
public class GetLogsTest {
public static void main(String[] args) throws LogException {
// Dalam contoh ini, AccessKey ID 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");
// Masukkan nama proyek.
String project = "your-project-name";
// Atur titik akhir Simple Log Service. Contoh ini menggunakan titik akhir wilayah China (Hangzhou). Ganti nilainya dengan titik akhir yang sebenarnya.
String host = "cn-hangzhou.log.aliyuncs.com";
// Masukkan nama penyimpanan log.
String logStore = "your-logstore-name";
// Buat klien Simple Log Service.
Client client = new Client(host, accessId, accessKey);
// Jalankan permintaan dalam penyimpanan log yang ditentukan.
try {
// Permintaan log di mana metode permintaan adalah POST dan kelompokkan hasil berdasarkan host.
// Gunakan klausa LIMIT dalam sintaks SQL untuk menentukan jumlah baris yang akan dikembalikan.
String query = "request_method:POST|select host, COUNT(*) as pv group by host limit 0,200";
// Tetapkan rentang waktu untuk permintaan.
int from = 1754449503;
int to = 1754449510;
// Dalam contoh ini, parameter permintaan diatur ke pernyataan kueri dan analisis. Parameter baris tidak valid.
GetLogsRequest request = new GetLogsRequest(project, logStore, from, to, "", query);
GetLogsResponse logsResponse = client.GetLogs(request);
System.out.println("-------------Permintaan dimulai.-------------");
System.out.println("Jumlah hasil permintaan yang dikembalikan :" + logsResponse.GetCount());
System.out.println("waktu mulai adalah :" + from);
System.out.println("waktu akhir adalah :" + to);
for (QueriedLog log : logsResponse.getLogs()) {
LogItem item = log.GetLogItem();
System.out.println("waktu log : " + item.mLogTime);
System.out.println("Jsonstring : " + item.ToJsonString());
}
System.out.println("-------------Permintaan selesai.-------------");
} catch (LogException e) {
System.out.println("LogException e :" + e.toString());
System.out.println("kode kesalahan :" + e.GetErrorCode());
System.out.println("pesan kesalahan :" + e.GetErrorMessage());
throw e;
}
}
}Tanggapan:
-------------Permintaan dimulai.-------------
Jumlah hasil permintaan yang dikembalikan :200
waktu mulai adalah :1644574445
waktu akhir adalah :1644574745
waktu log : 1644574445
Jsonstring : {"pv":"1","host":"www.example1.com","logtime":1644574445}
waktu log : 1644574445
Jsonstring : {"pv":"1","host":"www.example.org","logtime":1644574445}
waktu log : 1644574445
Jsonstring : {"pv":"1","host":"www.example.net","logtime":1644574445}
waktu log : 1644574445
Jsonstring : {"pv":"1","host":"www.example.edu","logtime":1644574445}
waktu log : 1644574445
Jsonstring : {"pv":"1","host":"www.aliyundoc.com","logtime":1644574445}
......
-------------Permintaan selesai.-------------
Proses selesai dengan kode keluar 0Contoh 6: Meminta jumlah total log dalam satu jam terakhir menggunakan pernyataan SQL
Contoh ini menunjukkan cara menggunakan pernyataan SQL *|select count(*) as count untuk meminta jumlah total log dari satu jam terakhir. Sebuah file GetLogsTest.java dibuat untuk permintaan tersebut.
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.LogItem;
import com.aliyun.openservices.log.common.QueriedLog;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.GetLogsRequest;
import com.aliyun.openservices.log.response.GetLogsResponse;
import java.util.Date;
public class GetLogsTest {
public static void main(String[] args) throws LogException {
// Dalam contoh ini, AccessKey ID 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");
// Masukkan nama proyek.
String project = "your-project-name";
// Atur titik akhir Simple Log Service. Contoh ini menggunakan titik akhir wilayah China (Hangzhou). Ganti nilainya dengan titik akhir yang sebenarnya.
String host = "cn-hangzhou.log.aliyuncs.com";
// Masukkan nama penyimpanan log.
String logStore = "your-logstore-name";
// Buat klien Simple Log Service.
Client client = new Client(host, accessId, accessKey);
// Jalankan permintaan dalam penyimpanan log yang ditentukan.
try {
// Permintaan jumlah total log.
String query = "*|select count(*) as count";
// Tetapkan rentang waktu permintaan menjadi 1 jam (3600 detik).
int from = (int) (new Date().getTime() / 1000 - 3600);
int to = (int) (new Date().getTime() / 1000);
int offset = 0;
int line = 200;
// Dalam contoh ini, pernyataan SQL dalam parameter permintaan digunakan untuk meminta jumlah total log dalam rentang waktu yang ditentukan.
GetLogsRequest request = new GetLogsRequest(project, logStore, from, to, "", query,line,offset,true);
GetLogsResponse logsResponse = client.GetLogs(request);
System.out.println("-------------Permintaan dimulai.-------------");
System.out.println("Jumlah hasil permintaan yang dikembalikan :" + logsResponse.GetCount());
System.out.println("waktu mulai adalah :" + from);
System.out.println("waktu akhir adalah :" + to);
for (QueriedLog log : logsResponse.getLogs()) {
LogItem item = log.GetLogItem();
System.out.println("waktu log : " + item.mLogTime);
System.out.println("Jsonstring : " + item.ToJsonString());
}
System.out.println("-------------Permintaan selesai.-------------");
} catch (LogException e) {
System.out.println("LogException e :" + e.toString());
System.out.println("kode kesalahan :" + e.GetErrorCode());
System.out.println("pesan kesalahan :" + e.GetErrorMessage());
throw e;
}
}
}Hasil yang dikembalikan menunjukkan bahwa jumlah total log dalam satu jam terakhir adalah 19.051. Tanggapan:
waktu mulai adalah :1675041679
waktu akhir adalah :1675045279
Jumlah hasil sql yang dikembalikan :1
Jsonstring : {"count":"19051","logtime":1675041679}
-------------Permintaan selesai.-------------Referensi
Jika pemanggilan API gagal, tanggapan dari Simple Log Service mencakup kode kesalahan. Untuk informasi lebih lanjut, lihat Kode Kesalahan.
Selain SDK aslinya, Simple Log Service juga mendukung SDK umum Alibaba Cloud. Untuk informasi lebih lanjut, lihat Simple Log Service_SDK Center_Alibaba Cloud OpenAPI Explorer.
Simple Log Service menyediakan antarmuka baris perintah (CLI) untuk konfigurasi otomatis. Untuk informasi lebih lanjut, lihat Ikhtisar CLI Simple Log Service.
Untuk lebih banyak contoh kode, lihat Alibaba Cloud Simple Log Service SDK for Java di GitHub.