

 [AWS SDK for JavaScript V3 API リファレンスガイド](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/)では、 AWS SDK for JavaScript バージョン3 (V3) のすべての API オペレーションについて詳しく説明します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS SDK for JavaScript 通話のログ記録
<a name="logging-sdk-calls"></a>

 AWS SDK for JavaScript には組み込みロガーが実装されているため、SDK for JavaScript で行った API コールを記録できます。

ロガーを有効にしてコンソールにログエントリを出力するには、オプションの `logger` パラメータを使用してサービスクライアントを設定します。次の例では、トレース出力とデバッグ出力を無視しながらクライアントログ記録を有効にします。

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

## ミドルウェアを使用してリクエストをログに記録する
<a name="middleware-logger"></a>

 AWS SDK for JavaScript はミドルウェアスタックを使用して、オペレーション呼び出しのライフサイクルを制御します。スタック内の各ミドルウェアは、リクエストオブジェクトに変更を加えた後、次のミドルウェアを呼び出します。また、エラーに至るまでに呼び出されたミドルウェアを正確に確認できるため、スタック内の問題のデバッグがはるかに簡単になります。ミドルウェアを使用したリクエストのログ記録の例を次に示します。

```
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` を使って次のミドルウェアを呼び出した結果を返します。