Tous les produits
Search
Centre de documentation

Alibaba Cloud SDK:Configurer un logger

Dernière mise à jour :Aug 11, 2026

Alibaba Cloud SDK V1.0 for Go permet de configurer un logger sur un client SDK pour journaliser chaque appel d'API.

Configuration du logger

Paramètres

Paramètre

Description

level

Niveau de journalisation. Définissez cette valeur sur un niveau tel que info, debug ou warn. Valeur par défaut : info.

channel

Canal de journalisation. Valeur par défaut : AlibabaCloud.

out

Destination de sortie des journaux. La valeur doit être un objet implémentant l'interface io.writer.

templete

Modèle contrôlant le format de sortie des journaux. Valeur par défaut : {time} {channel}: "{method} {uri} HTTP/{version}" {code} {cost} {hostname}. Pour plus d'informations, consultez la section Variables configurables dans le modèle de cette rubrique.

Exemple de code

import (
	"os"

	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
	ecs "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
)

func main() {
	config := sdk.NewConfig()
	// Use the AccessKey ID and AccessKey secret of the Resource Access Management (RAM) user.
	credential := credentials.NewAccessKeyCredential(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
	client, err := ecs.NewClientWithOptions("cn-hangzhou", config, credential)
	if err != nil {
		panic(err)
	}

	// Configure a logger in the SDK client. If you call this operation, the logging feature is enabled by default.
	// level: the log level. Default value: info.
	// channel: the data source of the log. Default value: AlibabaCloud.
	// out: the output path of the log. The value is an object that can implement the io.writer interface.
	// template: the log template. If you do not specify this parameter, the default value `{time} {channel}: "{method} {uri} HTTP/{version}" {code} {cost} {hostname}` is used.
	defaultLoggerTemplate := `{time} {channel}: "{method} {uri} HTTP/{version}" {code} {cost} {host}`
	client.SetLogger("info", "AlibabaCloud", os.Stdout, defaultLoggerTemplate)

	request := ecs.CreateDescribeRegionsRequest()
	client.DescribeRegions(request)
} 
client.OpenLogger()            // Enable the logging feature. If a logger does not exist in the SDK client, a default logger is created and configured.
client.SetTemplate(templete)   // Configure the log template. If a logger does not exist in the SDK client, a default logger is created and configured.

Exemple de journal

[INFO]client.go:574: 2024-06-17 17:01:25 AlibabaCloud: "POST /?AccessKeyId=LTAI****************&Action=DescribeRegions&Format=JSON&RegionId=cn-hangzhou&Signature=bC773M84gqLqk93PO8vd%2Bmx%2FAmM%3D&SignatureMethod=HMAC-SHA1&SignatureNonce=9f8f6dd196e9663a343150a81de0986f&SignatureType=&SignatureVersion=1.0&Timestamp=2024-06-17T09%3A01%3A21Z&Version=2014-05-26 HTTP/1.1" 200 4.1605408s ecs-cn-hangzhou.aliyuncs.com

Variables configurables dans le modèle

Variable

Description

{channel}

Canal de journalisation.

{host}

Hôte de la requête.

{time}

Horodatage au format ISO 8601, affiché en GMT.

{method}

Méthode de la requête.

{uri}

URI de la requête.

{version}

Version du protocole.

{target}

Cible de la requête (chemin et chaîne de requête).

{hostname}

Nom d'hôte de la cible de la requête.

{code}

Code d'état de la réponse, si disponible.

{error}

Message d'erreur, le cas échéant. Omis en l'absence d'erreur.

{req_headers}

En-têtes de la requête.

{res_headers}

En-têtes de la réponse.

{pid}

ID du processus.

{cost}

Durée de la requête.

{start_time}

Heure de début de la requête.

{res_body}

Corps de la réponse.