All Products
Search
Document Center

Alibaba Cloud SDK:Konfigurasikan pencatat

Last Updated:Jun 28, 2025

Pencatat digunakan untuk mencatat log setiap pemanggilan API dan dikonfigurasi menggunakan klien SDK di Alibaba Cloud SDK V1.0 untuk Go. Topik ini menjelaskan cara mengonfigurasi pencatat.

Konfigurasi pencatat

Parameter

Parameter

Deskripsi

level

Prefiks dari log. Kami menyarankan Anda mengatur nilainya ke level log, seperti info, debug, dan warn. Nilai default: info.

channel

Sumber data dari log. Nilai default: AlibabaCloud.

out

Jalur keluaran log. Nilainya harus berupa objek yang dapat mengimplementasikan antarmuka io.writer.

templete

Template log yang digunakan untuk mengonfigurasi isi log. Nilai default: `{time} {channel}: "{method} {uri} HTTP/{version}" {code} {cost} {hostname}`. Untuk informasi lebih lanjut, lihat bagian Variabel yang dapat dikonfigurasi dalam template dari topik ini.

Contoh kode

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 AccessKey ID dan Rahasia AccessKey dari 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 pencatat dalam klien SDK. Jika Anda memanggil operasi ini, fitur pencatatan akan diaktifkan secara default.
	// level: level log. Nilai default: info.
	// channel: sumber data dari log. Nilai default: AlibabaCloud.
	// out: jalur keluaran log. Nilainya adalah objek yang dapat mengimplementasikan antarmuka io.writer.
	// template: template log. Jika Anda tidak menentukan parameter ini, nilai default `{time} {channel}: "{method} {uri} HTTP/{version}" {code} {cost} {hostname}` 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 pencatatan. Jika pencatat tidak ada dalam klien SDK, pencatat default dibuat dan dikonfigurasi.
client.SetTemplate(templete)   // Konfigurasikan template log. Jika pencatat tidak ada dalam klien SDK, pencatat default 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 template

Variabel

Deskripsi

{channel}

Sumber data dari log.

{host}

Host yang mengirim permintaan.

{time}

Waktu yang mengikuti standar ISO 8601 dan ditampilkan dalam GMT.

{method}

Metode permintaan

{uri}

URI permintaan.

{version}

Versi protokol.

{target}

Alamat permintaan, yang terdiri dari parameter jalur dan parameter kueri dalam URI.

{hostname}

Nama host yang mengirim permintaan.

{code}

Kode status dari respons. Jika tidak ada kode status yang dikembalikan, variabel ini tidak ditampilkan.

{error}

Pesan kesalahan. Jika tidak ada pesan kesalahan yang dikembalikan, variabel ini tidak ditampilkan.

{req_headers}

Header permintaan

{res_headers}

Header respons.

{pid}

ID proses.

{cost}

Durasi permintaan.

{start_time}

Waktu mulai permintaan.

{res_body}

Badan respons.