All Products
Search
Document Center

Alibaba Cloud SDK:Konfigurasikan logger

Last Updated:Jun 17, 2026

Alibaba Cloud SDK V1.0 untuk Go memungkinkan Anda mengonfigurasi logger pada klien SDK untuk mencatat log setiap panggilan API.

Konfigurasi logger

Parameter

Parameter

Deskripsi

level

Awalan log. Atur nilai ini ke tingkat log seperti info, debug, atau warn. Nilai default: info.

channel

Saluran log. Nilai default: AlibabaCloud.

out

Tujuan output log. Nilainya harus berupa objek yang mengimplementasikan antarmuka io.writer.

templete

Templat yang mengontrol format output log. Nilai default: `{time} {channel}: "{method} {uri} HTTP/{version}" {code} {cost} {hostname}`. Untuk informasi selengkapnya, lihat bagian Variabel yang dapat dikonfigurasi dalam templat pada topik ini.

Kode contoh

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()
	// Gunakan ID AccessKey dan Rahasia AccessKey milik pengguna Resource Access Management (RAM).
	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)
	}

	// Konfigurasikan logger pada client SDK. Jika Anda memanggil operasi ini, fitur logging akan diaktifkan secara default.
	// level: tingkat log. Nilai default: info.
	// channel: sumber data log. Nilai default: AlibabaCloud.
	// out: jalur output log. Nilainya adalah objek yang dapat mengimplementasikan antarmuka io.writer.
	// template: templat log. Jika Anda tidak menentukan parameter ini, nilai default `{time} {channel}: "{method} {uri} HTTP/{version}" {code} {cost} {hostname}` akan digunakan.
	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()            // Aktifkan fitur logging. Jika logger belum ada di client SDK, logger default akan dibuat dan dikonfigurasi.
client.SetTemplate(templete)   // Konfigurasikan templat log. Jika logger belum ada di client SDK, logger default akan dibuat dan dikonfigurasi.

Contoh log

[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

Variabel yang dapat dikonfigurasi dalam templat

Variabel

Deskripsi

{channel}

Saluran log.

{host}

Host permintaan.

{time}

Timestamp dalam format ISO 8601, ditampilkan dalam GMT.

{method}

Metode permintaan.

{uri}

URI permintaan.

{version}

Versi protokol.

{target}

Target permintaan (path dan kueri).

{hostname}

Hostname dari target permintaan.

{code}

Kode status respons, jika tersedia.

{error}

Pesan kesalahan, jika ada. Diabaikan bila tidak terjadi kesalahan.

{req_headers}

Header permintaan.

{res_headers}

Header respons.

{pid}

ID proses.

{cost}

Durasi permintaan.

{start_time}

Waktu mulai permintaan.

{res_body}

Badan respons.