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. |