

 [適用於 JavaScript 的 AWS SDK V3 API 參考指南](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/)詳細說明 第 3 版 適用於 JavaScript 的 AWS SDK (V3) 的所有 API 操作。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 記錄 適用於 JavaScript 的 AWS SDK 通話
<a name="logging-sdk-calls"></a>

使用內建記錄器進行 適用於 JavaScript 的 AWS SDK 檢測，因此您可以記錄使用適用於 JavaScript 的 SDK 進行的 API 呼叫。

若要在主控台中開啟記錄器並列印日誌項目，請使用選用`logger`參數來設定服務用戶端。以下範例會在忽略追蹤和偵錯輸出時啟用用戶端記錄。

```
new S3Client({
  logger: {
    ...console,
    debug(...args) {},
    trace(...args) {},
  },
});
```

## 使用中介軟體記錄請求
<a name="middleware-logger"></a>

 適用於 JavaScript 的 AWS SDK 使用中介軟體堆疊來控制操作呼叫的生命週期。對請求物件進行任何變更後，堆疊中的每個中介軟體都會呼叫下一個中介軟體。這也會讓堆疊中的偵錯問題更輕鬆，因為您可以查看已呼叫哪些中介軟體導致錯誤。以下是使用中介軟體記錄請求的範例：

```
const client = new DynamoDB({ region: "us-west-2" });

client.middlewareStack.add(
  (next, context) => async (args) => {
    console.log("AWS SDK context", context.clientName, context.commandName);
    console.log("AWS SDK request input", args.input);
    const result = await next(args);
    console.log("AWS SDK request output:", result.output);
    return result;
  },
  {
    name: "MyMiddleware",
    step: "build",
    override: true,
  }
);

await client.listTables({});
```

在上述範例中，中介軟體會新增至 DynamoDB 用戶端的中介軟體堆疊。第一個引數是接受 的函數`next`，堆疊中要呼叫的下一個中介軟體`context`，以及包含所呼叫操作相關資訊的 物件。它會傳回接受 的函數`args`，此物件包含傳遞給 操作和 請求的參數，並傳回透過 呼叫下一個中介軟體的結果`args`。