

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 日志记录
<a name="configure-logging"></a>

 适用于 Go 的 AWS SDK 具有日志记录功能，使您的应用程序能够提供调试信息来调试和诊断请求问题或请求失败。[Logger](https://pkg.go.dev/github.com/aws/smithy-go/logging#Logger) 接口和 [ClientLogMode](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/aws#ClientLogMode) 是可用于确定客户端记录方式和记录内容的主要组件。

## 记录器
<a name="logger"></a>

 使用 [LoadDefaultConfig](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/config#LoadDefaultConfig) 构造 [Config](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/aws#Config) 时，默认 `Logger` 配置为向进程的标准错误（stderr）发送日志消息。通过用 [config.WithLogger](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/config#WithLogger) 进行包装，可以将满足 [Logger](https://pkg.go.dev/github.com/aws/smithy-go/logging#Logger) 接口的自定义记录器作为参数传递给 `LoadDefaultConfig`。

 例如，将我们的客户端配置为使用我们的 `applicationLogger`：

```
cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithLogger(applicationLogger))
```

 现在，使用构造的 `aws.Config` 配置的客户端将向 `applicationLogger` 发送日志消息。

### 上下文感知记录器
<a name="context-aware-loggers"></a>

 记录器实现可以实现可选的 [ContextLogger](https://pkg.go.dev/github.com/aws/smithy-go/logging#ContextLogger) 接口。实现此接口的记录器将在当前上下文中调用其 `WithContext` 方法。这允许您的日志记录实现返回一个新 `Logger`，它可以根据上下文中存在的值写入额外的日志元数据。

## ClientLogMode
<a name="clientlogmode"></a>

 默认情况下，服务客户端不会生成日志消息。要将客户端配置为出于调试目的发送日志消息，请使用 `Config` 上的 [ClientLogMode](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/aws#ClientLogMode) 成员。`ClientLogMode` 可设置为启用以下内容的调试消息：
+  签名版本 4（SigV4）签名 
+  请求重试 
+  HTTP 请求 
+  HTTP 响应 

 例如，启用 HTTP 请求和重试的日志记录：

```
cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogRetries | aws.LogRequest))
```

 有关可用的不同客户端日志模式，请参阅 [ClientLogMode](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/aws#ClientLogMode)。