aws-sdk-go-v2 自定义记录器

Ryg*_*ygo 7 go logrus aws-sdk-go-v2

使用 SDK v1,我可以使用 logrus 作为我的自定义记录器,例如:

    Logger: aws.LoggerFunc(func(args ...interface{}) {
        log.WithField("process", "s3").Debug(args...)
    }),
Run Code Online (Sandbox Code Playgroud)

sdk v2 对此有所改变,https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/logging/

看来我需要按照https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/config#WithLogger使用logging.logger

我很难使用 logrus 来达到此目的,有人可以建议我在这里需要做什么吗?

red*_* la 5

sdk v2 似乎提供了一个func 包装器来满足logging.logger


import (
   ...
   "github.com/aws/aws-sdk-go-v2/config"
   "github.com/aws/smithy-go/logging"
   log "github.com/sirupsen/logrus"
)

func main() {
    
    logger := logging.LoggerFunc(func(classification logging.Classification, format string, v ...interface{}) {
        // your custom logging 
        log.WithField("process", "s3").Debug(v...)
    })

    cfg, err := config.LoadDefaultConfig(
        context.TODO(),
        ...
        config.WithLogger(logger),
    )
    ....
}
Run Code Online (Sandbox Code Playgroud)