Alibaba Cloud SDK V1.0 for Go では、SDK クライアントでロガーを設定することで、各 API 呼び出しのログを記録できます。
ロガーの設定
パラメーター
|
パラメーター |
説明 |
|
level |
ログレベル。info、debug、warn などを設定します。デフォルト値: info。 |
|
channel |
ログチャネル。デフォルト値: AlibabaCloud。 |
|
out |
ログの出力先。io.Writer インターフェースを実装したオブジェクトを指定します。 |
|
template |
ログ出力形式を制御するテンプレート。デフォルト値: |
サンプルコード
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 ユーザーの AccessKey ID と AccessKey Secret を使用します。
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)
}
// SDK クライアントでロガーを設定します。この操作を呼び出すと、デフォルトでロギング機能が有効になります。
// level: ログレベル。デフォルト値: info。
// channel: ログのデータソース。デフォルト値: AlibabaCloud。
// out: ログの出力パス。io.Writer インターフェースを実装できるオブジェクトを指定します。
// template: ログテンプレート。このパラメーターを指定しない場合、デフォルト値 `{time} {channel}: "{method} {uri} HTTP/{version}" {code} {cost} {hostname}` が使用されます。
defaultLoggerTemplate := `{time} {channel}: "{method} {uri} HTTP/{version}" {code} {cost} {hostname}`
client.SetLogger("info", "AlibabaCloud", os.Stdout, defaultLoggerTemplate)
request := ecs.CreateDescribeRegionsRequest()
client.DescribeRegions(request)
} client.OpenLogger() // ロギング機能を有効にします。SDK クライアントにロガーが存在しない場合、デフォルトのロガーが作成され、設定されます。
client.SetTemplate("{time} {channel}: {error}") // 任意のテンプレート文字列でログテンプレートを設定します。SDK クライアントにロガーが存在しない場合、デフォルトのロガーが作成され、設定されます。
ログのサンプル
[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
テンプレートで設定可能な変数
|
変数 |
説明 |
|
{channel} |
ログチャネル。 |
|
{host} |
リクエストホスト。 |
|
{time} |
ISO 8601 形式のタイムスタンプ (GMT で表示)。 |
|
{method} |
リクエストメソッド。 |
|
{uri} |
リクエスト URI。 |
|
{version} |
プロトコルバージョン。 |
|
{target} |
リクエストターゲット (パスとクエリ)。 |
|
{hostname} |
リクエストターゲットのホスト名。 |
|
{code} |
レスポンスステータスコード (利用可能な場合)。 |
|
{error} |
エラーメッセージ (エラーが発生した場合)。エラーが発生しない場合は省略されます。 |
|
{req_headers} |
リクエストヘッダー。 |
|
{res_headers} |
レスポンスヘッダー。 |
|
{pid} |
プロセス ID。 |
|
{cost} |
リクエスト期間。 |
|
{start_time} |
リクエスト開始時刻。 |
|
{res_body} |
レスポンスボディ。 |