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.
Iniciar sesión con la versión 2.x SDK para Java
The AWS SDK for Java 2.x uses SLF4J
Los sistemas de registro compatibles incluyen Java Logging Framework y Apache Log4j 2
Archivo de configuración de Log4j 2
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
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 registrosoftware.amazon.awssdk
Añadir dependencia de registro
Para configurar el enlace de Log4j 2 SLF4J en su archivo de compilación, utilice lo siguiente.
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 CentralVERSION
con la versión que usarás.
SDK-errores y advertencias específicos
Le recomendamos que deje siempre la jerarquía de registradores «software.amazon.awssdk» establecida en «» para captar cualquier mensaje importante de las bibliotecas de WARN clientes de la biblioteca cliente. 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 log4j2.xml
archivo lo establece en WARN ««, lo que hace que aparezcan 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». rootLogger
Como alternativa, puedes establecer explícitamente la jerarquía de registradores «software.amazon.awssdk» en «» si se utiliza. WARN <Root level="ERROR">
Ejemplo de archivo de configuración Log4j2.xml
Esta configuración registrará los mensajes de los niveles «» y «ERROR» en la consola para todas las WARN 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
Cada solicitud a an Servicio de AWS genera un identificador de AWS solicitud único que resulta útil si tienes algún problema con la forma en que an gestiona Servicio de AWS una solicitud. AWS
IDsSe puede acceder a las solicitudes mediante programación a través de SdkServiceException
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 a nivel de depuración SDK
Si necesita más detalles sobre lo que SDK está haciendo, puede configurar el nivel de registro del software.amazon.awssdk
registrador en. DEBUG
En este nivel, el SDK resultado es una gran cantidad de detalles, por lo que le recomendamos que configure este nivel para resolver los errores mediante pruebas de integración.
En este nivel de registro, SDK registra información sobre la configuración, la resolución de credenciales, los interceptores de ejecución, la TLS actividad de alto nivel, la firma de solicitudes y mucho más.
A continuación, se muestra un ejemplo de las sentencias emitidas por el DEBUG
nivel SDK at para una S3Client#listBuckets()
llamada.
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
archivo 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>
Habilite el registro de cables
Puede resultar útil ver las solicitudes y respuestas exactas que envía y recibe la versión SDK para Java 2.x. Si necesita acceder a esta información, puede habilitarla temporalmente añadiendo la configuración necesaria en función del HTTP cliente del servicio que utilice.
De forma predeterminada, los clientes de servicios síncronos, como el S3Client
A continuación, se muestra un desglose de los HTTP clientes que puede utilizar para las dos categorías de clientes de servicio:
Clientes síncronos HTTP | Clientes asíncronos HTTP |
---|---|
ApacheHttpClient |
NettyNioAsyncHttpClient |
UrlConnectionHttpClient |
AwsCrtAsyncHttpClient |
AwsCrtHttpClient |
Consulte la pestaña correspondiente que aparece a continuación para ver los ajustes de configuración que necesita añadir en función del HTTP cliente 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 cifrar, incluso en el caso de una HTTPS llamada. 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.