全部產品
Search
文件中心

Simple Log Service:使用Java SDK寫入日誌

更新時間:Jan 06, 2026

如果想將應用程式的作業記錄、作業系統日誌、使用者日誌等上傳到Log Service,您可以使用Log ServiceJava SDK提供的PutLogs方法。本文主要介紹使用Log ServiceJava SDK將日誌寫入到Log Service的操作步驟。

前提條件

您已完成以下操作:

使用限制

  • aliyun-log-producer底層調用PutLogs介面上傳日誌,每次可以寫入的原始日誌大小存在限制。更多資訊,請參見資料讀寫

  • Log Service的基礎資源,包括建立Project個數、Logstore個數、Shard個數、LogtailConfig個數、機器組個數、單個LogItem大小、LogItem(Key)長度和LogItem(Value)長度等均存在限制。更多資訊,請參見基礎資源使用限制

  • 代碼首次運行後,請在Log Service控制台開啟日誌庫索引,等待一分鐘後,進行查詢。

  • 在控制台進行日誌查詢時,當單個欄位值長度超過最大長度時,超出部分被截斷,不參與分析。更多資訊,請參考建立索引

普通寫入&指定位置寫入

public PutLogsResponse PutLogs(String project, String logStore,
			String topic, List<LogItem> logItems, String source,
			String shardHash)

參數說明

參數

類型

是否必填

說明

project

String

目標Project。

logStore

String

目標LogStore。

topic

String

日誌主題。

logItems

List

要發送的日誌/日誌列表。寫入日誌的格式為LogItem

source

String

發送源。

說明

如果留空或沒有指定,該欄位將被賦予producer所在宿主機的IP。

shardHash

String

日誌寫入位置的HashID。

程式碼範例

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 {

        /**
         * 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
         */
        String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        /**
         * Log Service的服務存取點。此處以杭州為例,其它地區請根據實際情況填寫。
         */
        String host = "cn-hangzhou.log.aliyuncs.com";
        /**
         * 建立Log ServiceClient。
         */
        Client client = new Client(host, accessId, accessKey);
        String project = "ali-peoject-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);
    }
}

後續步驟

相關文檔