配置日志
更新时间:
Go V1.0 SDK通过Client配置logger,用于记录OpenAPI每次的调用情况。本文为您详细介绍如何配置logger。
logger配置
logger参数说明
参数  | 说明  | 
level  | 日志前缀,建议使用日志级别,比如info、debug、warn等,默认值为info。  | 
channel  | 通道,默认值为AlibabaCloud。  | 
out  | 日志输出路径,所需参数是一个实现了io.writer接口的对象。  | 
templete  | 日志模板,用于配置日志记录的内容,默认值为 `{time} {channel}: "{method} {uri} HTTP/{version}" {code} {cost} {hostname}`。支持配置的内容,请参见templete支持配置的变量。  | 
示例代码
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()
	// 使用RAM用户AccessKeyID和AccessKeySecret
	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)
	}
	// 设置客户端的日志, 当您调用该方法,默认为您开启日志功能
	// level: 日志等级,默认为 info
	// channel: channel,默认为 AlibabaCloud
	// out: 日志的输出路径。一个实现了io.writer接口的对象
	// templete: 日志的模板, 若不输入,则默认为 `{time} {channel}: "{method} {uri} HTTP/{version}" {code} {cost} {hostname}`
	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()            // 开启日志功能,若此时客户端的logger不存在, 则创建一个配置一个默认的logger
client.SetTemplate(templete)   // 设置日志模板,若此时客户端的 logger 不存在, 则创建一个配置一个默认的 logger     日志样例
[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.comtemplete支持配置的变量
变量  | 描述  | 
{channel}  | 日志的对象  | 
{host}  | 请求主机  | 
{time}  | GMT中的 ISO 8601日期  | 
{method}  | 请求方法  | 
{uri}  | 请求的URI  | 
{version}  | 协议版本  | 
{target}  | 请求目标 (path + query)  | 
{hostname}  | 发送请求的计算机的主机名  | 
{code}  | 响应的状态代码(如果可用)  | 
{error}  | 任何错误消息(如果有)  | 
{req_headers}  | 请求头  | 
{res_headers}  | 响应头  | 
{pid}  | PID  | 
{cost}  | 耗时  | 
{start_time}  | 开始时间  | 
{res_body}  | 响应主体  | 
该文章对您有帮助吗?