Tous les produits
Search
Centre de documentation

Simple Log Service:Utiliser le SDK Java pour écrire des journaux

Dernière mise à jour :Aug 18, 2026

Chargez les journaux d'application, du système d'exploitation ou des utilisateurs dans Simple Log Service en appelant la méthode PutLogs du SDK Java Simple Log Service.

Prérequis

Remarques sur l'utilisation

  • La bibliothèque aliyun-log-producer appelle l'opération PutLogs pour charger les journaux. Des limites de taille s'appliquent aux journaux bruts par requête. Pour plus d'informations, consultez Lecture et écriture des données.

  • Les ressources SLS — projets, Logstores, shards, LogtailConfig, groupes de machines, taille des LogItem, longueur des clés LogItem et longueur des valeurs LogItem — sont soumises à des limites. Pour plus d'informations, consultez Limites des ressources de base.

  • Après la première exécution du code, activez l'indexation du Logstore dans la console SLS et attendez une minute avant d'exécuter des requêtes.

  • Lorsque vous interrogez des journaux dans la console, les valeurs de champ dépassant la longueur maximale sont tronquées et exclues de l'analyse. Pour plus d'informations, consultez Créer des index.

Écritures générales et écritures vers des emplacements spécifiques

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

Paramètres

Paramètre

Type

Obligatoire

Description

project

String

Oui

Projet cible

logStore

String

Oui

Logstore de destination.

topic

String

Non

Sujet des journaux.

logItems

List

Oui

Journal ou liste de journaux à envoyer. Les journaux doivent être au format LogItem.

source

String

Non

Identifiant de source du journal.

Remarque

Si vous laissez ce paramètre vide ou ne le spécifiez pas, l'adresse IP de l'hôte où réside le producteur est utilisée.

shardHash

String

Non

ID de hachage du shard dans lequel vous souhaitez écrire les journaux.

Exemple de code

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 {

        /**
         * In this example, the AccessKey ID and AccessKey secret are obtained from environment variables.
         */
        String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        /**
         * The endpoint of Simple Log Service. In this example, the endpoint for the China (Hangzhou) region is used. Replace the value with the actual endpoint.
         */
        String host = "cn-hangzhou.log.aliyuncs.com";
        /**
         * Create a Simple Log Service client.
         */
        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);
    }
}

Étapes suivantes

Références