如果想將應用程序的運行日志、操作系統日志、用戶日志等上傳到日志服務,您可以使用日志服務Java SDK提供的PutLogs
方法。本文主要介紹使用日志服務Java SDK將日志寫入到日志服務的操作步驟。
前提條件
已開通日志服務。更多信息,請參見開通日志服務。
已創建RAM用戶并完成授權。具體操作,請參見創建RAM用戶并完成授權。
已配置環境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。具體操作,請參見在Linux、macOS和Windows系統配置環境變量。
重要阿里云賬號的AccessKey擁有所有API的訪問權限,建議您使用RAM用戶的AccessKey進行API訪問或日常運維。
強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
已安裝日志服務Java SDK。具體操作,請參見安裝Java SDK。
已創建索引。具體操作,請參見創建索引。
使用限制
普通寫入&指定位置寫入
@override
public PutLogsResponse PutLogs(project, logstore, logItem, topic, source, shardHash)
參數說明
參數 | 類型 | 是否必填 | 說明 |
project | String | 是 | 目標Project。 |
logstore | String | 是 | 目標LogStore。 |
logItem | List | 是 | 要發送的日志/日志列表。寫入日志的格式為LogItem。 |
topic | String | 否 | 日志主題。 說明 如果留空或沒有指定,該字段將被賦予""。 |
source | String | 否 | 發送源。 說明 如果留空或沒有指定,該字段將被賦予producer所在宿主機的IP。 |
shardHash | String | 否 | 日志寫入位置的HashID。 |
代碼示例
/**
* 本示例從環境變量中獲取AccessKey ID和AccessKey Secret。
*/
String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
/**
* 日志服務的服務接入點。此處以成都為例,其它地域請根據實際情況填寫。
*/
String host = "cn-chengdu.log.aliyuncs.com";
/**
* 創建日志服務Client。
*/
Client client = new Client(host, accessId, accessKey);
List<LogItem> logGroup = new ArrayList<LogItem>();
for (int i = 0; i < 5; ++i) {
LogItem logItem = new LogItem();
logItem.PushBack("language", "android");
logItem.PushBack("time", String.valueOf(System.currentTimeMillis()));
logGroup.add(logItem);
}
/**
* // Project名稱。
*/
String projectName = "your-project-name";
/**
* Logstore名稱。
*/
String logstoreName = "your-logstore-name";
client.PutLogs(projectName, logstoreName, topic, logGroup, source);
后續步驟
用Java SDK查詢日志,請參見使用GetLogs接口查詢日志。
使用API查詢日志,請參見GetLogsV2。
使用日志服務控制臺查詢日志,請參見查詢和分析日志。
相關文檔
使用Java SDK創建Project,Logstore,請參見Java SDK快速入門。
需要將日志進行壓縮、批量上傳日志到日志服務,請參見使用Aliyun Log Java Producer寫入日志數據。
在使用Java SDK操作過程中,若服務端返回結果中包含錯誤信息,則表示調用接口失敗。您可以參考API錯誤碼對照表查找對應的解決方法。更多信息,請參見API錯誤處理對照表。