

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Inicio de sesión con SDK para Java 2.x
<a name="logging-slf4j"></a>

 AWS SDK for Java 2.x Utiliza [SLF4J](https://www.slf4j.org/manual.html), que es una capa de abstracción que permite el uso de cualquiera de los varios sistemas de registro en tiempo de ejecución.

Los sistemas de registro compatibles incluyen Java Logging Framework y Apache [Log4j 2](https://logging.apache.org/log4j/2.x/), entre otros. En este tema se muestra cómo utilizar Log4j 2 como sistema de registro para trabajar con el SDK.

## Archivo de configuración de Log4j 2
<a name="log4j-configuration-file"></a>

Por lo general, se utiliza un archivo de configuración, cuyo nombre es `log4j2.xml` con Log4j 2. A continuación, se muestran ejemplos de archivos de configuración. Para obtener más información acerca de los valores que se utilizan en el archivo de configuración, consulte el [manual de configuración de Log4j](https://logging.apache.org/log4j/2.x/manual/configuration.html).

El archivo `log4j2.xml` debe estar en la ruta de clases cuando se inicie la aplicación. Para un proyecto de Maven, coloque el archivo en el directorio `<project-dir>/src/main/resources`.

El archivo de configuración `log4j2.xml` especifica propiedades como el [nivel de registro](https://logging.apache.org/log4j/2.x/manual/configuration.html#Loggers), dónde se envía la salida de registro (por ejemplo, [a un archivo o a la consola](https://logging.apache.org/log4j/2.x/manual/appenders.html)) y el [formato de la salida](https://logging.apache.org/log4j/2.x/manual/layouts.html). El nivel de registro especifica el nivel de detalle que genera Log4j 2. Log4j 2 admite el concepto de varias [https://logging.apache.org/log4j/2.x/manual/architecture.html#](https://logging.apache.org/log4j/2.x/manual/architecture.html#) de registro. El nivel de registro se define de forma independiente para cada jerarquía. La jerarquía de registro principal que se utiliza con la AWS SDK for Java 2.x es`software.amazon.awssdk`.

## Añadir dependencia de registro
<a name="sdk-java-logging-classpath"></a>

Para configurar el enlace Log4j 2 para SLF4 J en su archivo de compilación, utilice lo siguiente.

------
#### [ Maven ]

Añada el siguiente elemento a su archivo `pom.xml`.

```
...
<dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-slf4j2-impl</artifactId>
   <version>VERSION</version>
</dependency>
...
```

------
#### [ Gradle–Kotlin DSL ]

Añada lo siguiente a su archivo `build.gradle.kts`.

```
...
dependencies {
    ...
    implementation("org.apache.logging.log4j:log4j-slf4j2-impl:VERSION")
    ...
}
...
```

------

Utilice `2.20.0` para la versión mínima del artefacto `log4j-slf4j2-impl`. Para obtener la última versión, utilice la versión publicada en [Maven Central](https://central.sonatype.com/artifact/org.apache.logging.log4j/log4j-slf4j2-impl). *VERSION*Sustitúyala por la versión que vayas a utilizar.

## Errores y advertencias específicos del SDK
<a name="sdk-java-logging-service"></a>

Le recomendamos que deje siempre la jerarquía del registrador "software.amazon.awssdk" establecida en "WARN" para captar cualquier mensaje importante de las bibliotecas cliente del SDK. Por ejemplo, si el cliente Amazon S3 detecta que su aplicación no ha cerrado correctamente un `InputStream` y podría estar desperdiciando recursos, el cliente S3 informa de ello a través de un mensaje de advertencia a los archivos log. Esto también garantiza que se registren los mensajes si el cliente tiene algún problema con el tratamiento de las solicitudes o respuestas.

El siguiente archivo `log4j2.xml` establece `rootLogger` en «WARN», lo que genera mensajes de advertencia y de nivel de error de todos los registradores de la aplicación, *incluidos* los de la jerarquía «software.amazon.awssdk». Como alternativa, puede establecer explícitamente la jerarquía del registrador "software.amazon.awssdk" en "WARN" si se utiliza `<Root level="ERROR">`.

**Ejemplo de archivo de configuración Log4j2.xml**

Esta configuración registrará los mensajes en los niveles «ERROR» y «WARN» en la consola para todas las jerarquías de registradores.

```
<Configuration status="WARN">
 <Appenders>
  <Console name="ConsoleAppender" target="SYSTEM_OUT">
   <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%t] %-5p %c:%L - %m%n" />
  </Console>
 </Appenders>

 <Loggers>
  <Root level="WARN">
   <AppenderRef ref="ConsoleAppender"/>
  </Root>
 </Loggers>
</Configuration>
```

## Registro de resumen de solicitud/respuesta
<a name="sdk-java-logging-request-response"></a>

Cada solicitud a an Servicio de AWS genera un identificador de AWS solicitud único que es útil si tienes algún problema con la forma en que an Servicio de AWS gestiona una solicitud. AWS IDs Se puede acceder a las solicitudes mediante programación a través de [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/exception/SdkServiceException.html#requestId()](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/exception/SdkServiceException.html#requestId())los objetos del SDK para cualquier llamada de servicio fallida, y también se pueden informar a través del nivel de registro «DEBUG» del registrador «software.amazon.awssdk.request».

El siguiente archivo `log4j2.xml` habilita un resumen de solicitudes y respuestas.

```
<Configuration status="WARN">
 <Appenders>
  <Console name="ConsoleAppender" target="SYSTEM_OUT">
   <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%t] %-5p %c:%L - %m%n" />
  </Console>
 </Appenders>

 <Loggers>
  <Root level="ERROR">
   <AppenderRef ref="ConsoleAppender"/>
  </Root>
  <Logger name="software.amazon.awssdk" level="WARN" />
  <Logger name="software.amazon.awssdk.request" level="DEBUG" />
 </Loggers>
</Configuration>
```

Este es un ejemplo del resultado del registro:

```
2022-09-23 16:02:08 [main] DEBUG software.amazon.awssdk.request:85 - Sending Request: DefaultSdkHttpFullRequest(httpMethod=POST, protocol=https, host=dynamodb.us-east-1.amazonaws.com, encodedPath=/, headers=[amz-sdk-invocation-id, Content-Length, Content-Type, User-Agent, X-Amz-Target], queryParameters=[])
2022-09-23 16:02:08 [main] DEBUG software.amazon.awssdk.request:85 - Received successful response: 200, Request ID: QS9DUMME2NHEDH8TGT9N5V53OJVV4KQNSO5AEMVJF66Q9ASUAAJG, Extended Request ID: not available
```

Si solo le interesa el identificador de solicitud, utilice `<Logger name="software.amazon.awssdk.requestId" level="DEBUG" />`.

## Registro del SDK en el nivel de depuración
<a name="sdk-debug-level-logging"></a>

Si necesita más información sobre qué hace el SDK, puede configurar el nivel de registro del registrador `software.amazon.awssdk` en `DEBUG`. En este nivel, el SDK genera una gran cantidad de detalles, por lo que te recomendamos que establezca este nivel para resolver errores mediante pruebas de integración. 

En este nivel de registro, el SDK registra información sobre configuración, resolución de credenciales, interceptores de ejecución, actividad de TLS de alto nivel, firma de solicitudes y mucho más.

A continuación se ofrece una muestra de instrucciones que genera el SDK en el nivel de `DEBUG` para una llamada `S3Client#listBuckets()`.

```
DEBUG s.a.a.r.p.AwsRegionProviderChain:57 - Unable to load region from software.amazon.awssdk.regions.providers.SystemSettingsRegionProvider@324dcd31:Unable to load region from system settings. Region must be specified either via environment variable (AWS_REGION) or  system property (aws.region).
DEBUG s.a.a.c.i.h.l.ClasspathSdkHttpServiceProvider:85 - The HTTP implementation loaded is software.amazon.awssdk.http.apache.ApacheSdkHttpService@a23a01d
DEBUG s.a.a.c.i.ExecutionInterceptorChain:85 - Creating an interceptor chain that will apply interceptors in the following order: [software.amazon.awssdk.core.internal.interceptor.HttpChecksumValidationInterceptor@69b2f8e5, software.amazon.awssdk.awscore.interceptor.HelpfulUnknownHostExceptionInterceptor@6331250e, software.amazon.awssdk.awscore.eventstream.EventStreamInitialRequestInterceptor@a10c1b5, software.amazon.awssdk.awscore.interceptor.TraceIdExecutionInterceptor@644abb8f, software.amazon.awssdk.services.s3.auth.scheme.internal.S3AuthSchemeInterceptor@1a411233, software.amazon.awssdk.services.s3.endpoints.internal.S3ResolveEndpointInterceptor@70325d20, software.amazon.awssdk.services.s3.endpoints.internal.S3RequestSetEndpointInterceptor@7c2327fa, software.amazon.awssdk.services.s3.internal.handlers.StreamingRequestInterceptor@4d847d32, software.amazon.awssdk.services.s3.internal.handlers.CreateBucketInterceptor@5f462e3b, software.amazon.awssdk.services.s3.internal.handlers.CreateMultipartUploadRequestInterceptor@3d7fa3ae, software.amazon.awssdk.services.s3.internal.handlers.DecodeUrlEncodedResponseInterceptor@58065f0c, software.amazon.awssdk.services.s3.internal.handlers.GetBucketPolicyInterceptor@3605c4d3, software.amazon.awssdk.services.s3.internal.handlers.S3ExpressChecksumInterceptor@585c13de, software.amazon.awssdk.services.s3.internal.handlers.AsyncChecksumValidationInterceptor@187eb9a8, software.amazon.awssdk.services.s3.internal.handlers.SyncChecksumValidationInterceptor@726a6b94, software.amazon.awssdk.services.s3.internal.handlers.EnableTrailingChecksumInterceptor@6ad11a56, software.amazon.awssdk.services.s3.internal.handlers.ExceptionTranslationInterceptor@522b2631, software.amazon.awssdk.services.s3.internal.handlers.GetObjectInterceptor@3ff57625, software.amazon.awssdk.services.s3.internal.handlers.CopySourceInterceptor@1ee29c84, software.amazon.awssdk.services.s3.internal.handlers.ObjectMetadataInterceptor@7c8326a4]
DEBUG s.a.a.u.c.CachedSupplier:85 - (SsoOidcTokenProvider()) Cached value is stale and will be refreshed.
...
DEBUG s.a.a.c.i.ExecutionInterceptorChain:85 - Creating an interceptor chain that will apply interceptors in the following order: [software.amazon.awssdk.core.internal.interceptor.HttpChecksumValidationInterceptor@51351f28, software.amazon.awssdk.awscore.interceptor.HelpfulUnknownHostExceptionInterceptor@21618fa7, software.amazon.awssdk.awscore.eventstream.EventStreamInitialRequestInterceptor@15f2eda3, software.amazon.awssdk.awscore.interceptor.TraceIdExecutionInterceptor@34cf294c, software.amazon.awssdk.services.sso.auth.scheme.internal.SsoAuthSchemeInterceptor@4d7aaca2, software.amazon.awssdk.services.sso.endpoints.internal.SsoResolveEndpointInterceptor@604b1e1d, software.amazon.awssdk.services.sso.endpoints.internal.SsoRequestSetEndpointInterceptor@62566842]
...
DEBUG s.a.a.request:85 - Sending Request: DefaultSdkHttpFullRequest(httpMethod=GET, protocol=https, host=portal.sso.us-east-1.amazonaws.com, encodedPath=/federation/credentials, headers=[amz-sdk-invocation-id, User-Agent, x-amz-sso_bearer_token], queryParameters=[role_name, account_id])
DEBUG s.a.a.c.i.h.p.s.SigningStage:85 - Using SelectedAuthScheme: smithy.api#noAuth
DEBUG s.a.a.h.a.i.c.SdkTlsSocketFactory:366 - Connecting socket to portal.sso.us-east-1.amazonaws.com/18.235.195.183:443 with timeout 2000
...
DEBUG s.a.a.requestId:85 - Received successful response: 200, Request ID: bb4f40f4-e920-4b5c-8648-58f26e7e08cd, Extended Request ID: not available
DEBUG s.a.a.request:85 - Received successful response: 200, Request ID: bb4f40f4-e920-4b5c-8648-58f26e7e08cd, Extended Request ID: not available
DEBUG s.a.a.u.c.CachedSupplier:85 - (software.amazon.awssdk.services.sso.auth.SsoCredentialsProvider@b965857) Successfully refreshed cached value. Next Prefetch Time: 2024-04-25T22:03:10.097Z. Next Stale Time: 2024-04-25T22:05:30Z
DEBUG s.a.a.c.i.ExecutionInterceptorChain:85 - Interceptor 'software.amazon.awssdk.services.s3.endpoints.internal.S3RequestSetEndpointInterceptor@7c2327fa' modified the message with its modifyHttpRequest method.
...
DEBUG s.a.a.c.i.h.p.s.SigningStage:85 - Using SelectedAuthScheme: aws.auth#sigv4
...
DEBUG s.a.a.a.s.Aws4Signer:85 - AWS4 Canonical Request: GET
...
DEBUG s.a.a.h.a.a.i.s.DefaultV4RequestSigner:85 - AWS4 String to sign: AWS4-HMAC-SHA256
20240425T210631Z
20240425/us-east-1/s3/aws4_request
aafb7784627fa7a49584256cb746279751c48c2076f813259ef767ecce304d64
DEBUG s.a.a.h.a.i.c.SdkTlsSocketFactory:366 - Connecting socket to s3.us-east-1.amazonaws.com/52.217.41.86:443 with timeout 2000
...
```

El siguiente `log4j2.xml` configura la salida anterior.

```
<Configuration status="WARN">
    <Appenders>
        <Console name="ConsoleAppender" target="SYSTEM_OUT">
            <PatternLayout pattern="%-5p %c{1.}:%L - %m%n" />
        </Console>
    </Appenders>

    <Loggers>
        <Root level="WARN">
            <AppenderRef ref="ConsoleAppender"/>
        </Root>
        <Logger name="software.amazon.awssdk" level="DEBUG" />
    </Loggers>
</Configuration>
```

## Habilitación del registro en red
<a name="sdk-java-logging-verbose"></a>

Puede ser útil ver exactamente las solicitudes y respuestas que el SDK para Java 2.x envía y recibe. Si necesita acceder a esta información, puede habilitarla temporalmente añadiendo la configuración necesaria en función del cliente HTTP que utilice el cliente del servicio.

[De forma predeterminada, los clientes de servicios síncronos, como el [S3Client, utilizan un Apache subyacente, y los clientes de servicios asíncronos, como el S3 HttpClient, utilizan un cliente](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3Client.html) HTTP Netty sin bloqueo. AsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html)

Este es un desglose de los clientes HTTP que puede utilizar para las dos categorías de clientes de servicio:


| Clientes HTTP síncronos | Clientes HTTP asíncronos | 
| --- | --- | 
| [ApacheHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache/ApacheHttpClient.html) (predeterminado) | [NettyNioAsyncHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/nio/netty/NettyNioAsyncHttpClient.html) (predeterminado) | 
| [UrlConnectionHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/urlconnection/UrlConnectionHttpClient.html) | [AwsCrtAsyncHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/crt/AwsCrtAsyncHttpClient.html) | 
| [AwsCrtHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/crt/AwsCrtHttpClient.html) |  | 
| [Apache 5 HttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache5/Apache5HttpClient.html)  | 

Consulte la pestaña correspondiente a continuación para ver los ajustes de configuración que necesite añadir en función del cliente HTTP subyacente.

**aviso**  
Le recomendamos que solo utilice en registro en red para fines de depuración. Deshabilítelo en sus entornos de producción, ya que puede registrar información confidencial. Registra la solicitud o respuesta completa sin cifrado, incluso para una llamada HTTPS. En el caso de solicitudes o respuestas de gran tamaño (p. ej., para cargar un archivo Amazon S3), el registro detallado de las conexiones también puede afectar considerablemente al rendimiento de la aplicación.

------
#### [ ApacheHttpClient ]

Añada el registrador «org.apache.http.wire» al archivo de configuración `log4j2.xml` y establezca el nivel en «DEBUG».

El siguiente `log4j2.xml` archivo activa el registro completo de cables para Apache. HttpClient

```
<Configuration status="WARN">
 <Appenders>
  <Console name="ConsoleAppender" target="SYSTEM_OUT">
   <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%t] %-5p %c:%L - %m%n" />
  </Console>
 </Appenders>

 <Loggers>
  <Root level="WARN">
   <AppenderRef ref="ConsoleAppender"/>
  </Root>
  <Logger name="software.amazon.awssdk" level="WARN" />
  <Logger name="software.amazon.awssdk.request" level="DEBUG" />
  <Logger name="org.apache.http.wire" level="DEBUG" />
 </Loggers>
</Configuration>
```

Se requiere una dependencia adicional de Maven en el artefacto `log4j-1.2-api` para el registro de cables con Apache, ya que utiliza 1.2 internamente. 

El conjunto completo de dependencias de Maven para log4j 2, incluido el registro de conexiones para el cliente HTTP Apache, se muestra en los siguientes fragmentos de archivos de compilación.

**Maven**

```
...
<dependencyManagement>
    ...
    <dependencies>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-bom</artifactId>
            <version>VERSION</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
     </dependencies>
</dependencyManagement>
...
<!-- The following is needed for Log4j2 with SLF4J -->
<dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-slf4j2-impl</artifactId>
</dependency>

<!-- The following is needed for Apache HttpClient wire logging -->
<dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-1.2-api</artifactId>
</dependency>
...
```

**DSL de Gradle–Kotlin**

```
...
dependencies {
    ...
    implementation(platform("org.apache.logging.log4j:log4j-bom:VERSION"))
    implementation("org.apache.logging.log4j:log4j-slf4j2-impl")
    implementation("org.apache.logging.log4j:log4j-1.2-api")
}
...
```

Utilice `2.20.0` para la versión mínima del artefacto `log4j-bom`. Para obtener la última versión, utilice la versión publicada en [Maven Central](https://central.sonatype.com/artifact/org.apache.logging.log4j/log4j-bom). *VERSION*Sustitúyala por la versión que vayas a utilizar.

------
#### [ Apache5HttpClient ]

Añada el registrador «org.apache.hc.client5.http.wire» al archivo de configuración y establezca el nivel en «DEBUG». `log4j2.xml`

`log4j2.xml`El siguiente archivo activa el registro completo de cables en HttpClient el Apache5.

```
<Configuration status="WARN">
 <Appenders>
  <Console name="ConsoleAppender" target="SYSTEM_OUT">
   <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%t] %-5p %c:%L - %m%n" />
  </Console>
 </Appenders>

 <Loggers>
  <Root level="WARN">
   <AppenderRef ref="ConsoleAppender"/>
  </Root>
  <Logger name="software.amazon.awssdk" level="WARN" />
  <Logger name="software.amazon.awssdk.request" level="DEBUG" />
  <Logger name="org.apache.hc.client5.http.wire" level="DEBUG" />
 </Loggers>
</Configuration>
```

------
#### [ UrlConnectionHttpClient ]

Para registrar los detalles de los clientes del servicio que utilizan la `UrlConnectionHttpClient`, cree primero un archivo `logging.properties` con el siguiente contenido:

```
handlers=java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level=FINEST
sun.net.www.protocol.http.HttpURLConnection.level=ALL
```

Defina la siguiente propiedad del sistema JVM con la ruta completa de `logging.properties`:

```
-Djava.util.logging.config.file=/full/path/to/logging.properties
```

Esta configuración registrará únicamente los encabezados de la solicitud y la respuesta, por ejemplo:

```
<Request>  FINE: sun.net.www.MessageHeader@35a9782c11 pairs: {GET /fileuploadtest HTTP/1.1: null}{amz-sdk-invocation-id: 5f7e707e-4ac5-bef5-ba62-00d71034ffdc}{amz-sdk-request: attempt=1; max=4}{Authorization: AWS4-HMAC-SHA256 Credential=<deleted>/20220927/us-east-1/s3/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;host;x-amz-content-sha256;x-amz-date;x-amz-te, Signature=e367fa0bc217a6a65675bb743e1280cf12fbe8d566196a816d948fdf0b42ca1a}{User-Agent: aws-sdk-java/2.17.230 Mac_OS_X/12.5 OpenJDK_64-Bit_Server_VM/25.332-b08 Java/1.8.0_332 vendor/Amazon.com_Inc. io/sync http/UrlConnection cfg/retry-mode/legacy}{x-amz-content-sha256: UNSIGNED-PAYLOAD}{X-Amz-Date: 20220927T133955Z}{x-amz-te: append-md5}{Host: tkhill-test1.s3.amazonaws.com}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}
<Response> FINE: sun.net.www.MessageHeader@70a36a6611 pairs: {null: HTTP/1.1 200 OK}{x-amz-id-2: sAFeZDOKdUMsBbkdjyDZw7P0oocb4C9KbiuzfJ6TWKQsGXHM/dFuOvr2tUb7Y1wEHGdJ3DSIxq0=}{x-amz-request-id: P9QW9SMZ97FKZ9X7}{Date: Tue, 27 Sep 2022 13:39:57 GMT}{Last-Modified: Tue, 13 Sep 2022 14:38:12 GMT}{ETag: "2cbe5ad4a064cedec33b452bebf48032"}{x-amz-transfer-encoding: append-md5}{Accept-Ranges: bytes}{Content-Type: text/plain}{Server: AmazonS3}{Content-Length: 67}
```

Para ver los request/response cuerpos, agréguelos `-Djavax.net.debug=all` a las propiedades de la JVM. Esta propiedad adicional registra una gran cantidad de información, incluida toda la información de SSL. 

En la consola de registro o en el archivo de registro, busque `"GET"` o `"POST"` para ir rápidamente a la sección del registro que contiene las solicitudes y respuestas reales. Busque `"Plaintext before ENCRYPTION"` para las solicitudes y `"Plaintext after DECRYPTION"` para las respuestas para ver el texto completo de las cabeceras y los contenidos.

------
#### [ NettyNioAsyncHttpClient ]

Si su cliente de servicio asíncrono utiliza el `NettyNioAsyncHttpClient` predeterminado, añada dos registradores adicionales al su archivo `log4j2.xml` para registrar los encabezados HTTP y los textos de las solicitudes o respuestas.

```
<Logger name="io.netty.handler.logging" level="DEBUG" />
<Logger name="io.netty.handler.codec.http2.Http2FrameLogger" level="DEBUG" />
```

Este es un ejemplo completo de `log4j2.xml`:

```
<Configuration status="WARN">
    <Appenders>
        <Console name="ConsoleAppender" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%t] %-5p %c:%L - %m%n" />
        </Console>
    </Appenders>

    <Loggers>
        <Root level="WARN">
            <AppenderRef ref="ConsoleAppender"/>
        </Root>
        <Logger name="software.amazon.awssdk" level="WARN" />
        <Logger name="software.amazon.awssdk.request" level="DEBUG" />
        <Logger name="io.netty.handler.logging" level="DEBUG" />
        <Logger name="io.netty.handler.codec.http2.Http2FrameLogger" level="DEBUG" />
    </Loggers>
</Configuration>
```

Esta configuración registra todos los detalles y request/response cuerpos del encabezado.

------
#### [ AwsCrtAsyncHttpClient/AwsCrtHttpClient ]

Si ha configurado su cliente de servicio para que utilice una instancia de un cliente de HTTP basado en AWS CRT, puede registrar los detalles configurando las propiedades del sistema JVM o mediante programación.


|  | 
| --- |
|  Log to a file at "Debug" level  | 
|  Uso de las propiedades del sistema: <pre>-Daws.crt.log.level=Trace <br />-Daws.crt.log.destination=File <br />-Daws.crt.log.filename=<path to file></pre>  |  Mediante programación: <pre>import software.amazon.awssdk.crt.Log;<br /><br />// Execute this statement before constructing the SDK service client.<br />Log.initLoggingToFile(Log.LogLevel.Trace, "<path to file>");</pre>  | 
|  Log to the console at "Debug" level  | 
|  Uso de las propiedades del sistema: <pre>-Daws.crt.log.level=Trace <br />-Daws.crt.log.destination=Stdout</pre>  |  Mediante programación: <pre>import software.amazon.awssdk.crt.Log;<br /><br />// Execute this statement before constructing the SDK service client.<br />Log.initLoggingToStdout(Log.LogLevel.Trace);</pre>  | 

Por motivos de seguridad, en el nivel «Trace», los clientes HTTP AWS basados en CRT solo registran los encabezados de respuesta. Los encabezados de las solicitudes, los textos de las solicitudes y los de respuesta no se registran.

------