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
Simple Log Service est activé. Pour plus d'informations, consultez Activer Simple Log Service.
Le SDK Simple Log Service pour Java est initialisé. Pour plus d'informations, consultez Initialiser le SDK Simple Log Service pour Java.
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
Interrogez les journaux avec le SDK Java. Pour plus d'informations, consultez Utiliser l'opération GetLogs pour interroger les journaux.
Interrogez les journaux via l'API. Pour plus d'informations, consultez GetLogsV2.
Interrogez les journaux dans la console Simple Log Service. Pour plus d'informations, consultez Démarrage rapide pour l'interrogation et l'analyse des journaux.
Références
Pour créer un projet et un Logstore avec le SDK Java, consultez Démarrage rapide pour le SDK Java.
Pour compresser et charger des journaux par lots dans Simple Log Service, consultez Utiliser Aliyun Log Java Producer pour écrire des données de journal.
Si le serveur renvoie une erreur, consultez les Codes d'erreur de l'API pour le dépannage.