View a markdown version of this page

Loggen mit dem SDK für Java 2.x - AWS SDK for Java 2.x

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Loggen mit dem SDK für Java 2.x

Der AWS SDK for Java 2.x verwendet SLF4J, eine Abstraktionsschicht, die die Verwendung eines von mehreren Protokollierungssystemen zur Laufzeit ermöglicht.

Zu den unterstützten Protokollierungssystemen gehören unter anderem das Java Logging Framework und Apache Log4j 2. Dieses Thema zeigt Ihnen, wie Sie Log4j 2 als Logging-System für die Arbeit mit dem SDK verwenden.

Log4j 2-Konfigurationsdatei

Normalerweise verwenden Sie eine Konfigurationsdatei, die log4j2.xml mit Log4j 2 benannt ist. Beispiel-Konfigurationsdateien werden nachfolgend angezeigt. Weitere Informationen über die Werte in der Konfigurationsdatei finden Sie im Handbuch für die Log4j-Konfiguration.

Die log4j2.xml Datei muss sich im Klassenpfad befinden, wenn Ihre Anwendung gestartet wird. Für ein Maven-Projekt legen Sie die Datei in das Verzeichnis. <project-dir>/src/main/resources

Die log4j2.xml Konfigurationsdatei spezifiziert Eigenschaften wie die Protokollierungsstufe, an die die Logging-Ausgabe gesendet wird (z. B. an eine Datei oder an die Konsole), und das Format der Ausgabe. Die Protokollierungsebene gibt den Detaillierungsgrad an, den Log4j 2 ausgibt. Log4j 2 unterstützt das Konzept mehrerer Logging-Hierarchien. Die Protokollierungsebene wird für jede Hierarchie separat festgelegt. Die wichtigste Protokollierungshierarchie, die Sie mit dem verwenden, ist. AWS SDK for Java 2.x software.amazon.awssdk

Protokollierungsabhängigkeit hinzufügen

Verwenden Sie Folgendes, um die Log4J 2-Bindung für SLF4J in Ihrer Build-Datei zu konfigurieren.

Maven

Fügen Sie Ihrer Datei die folgenden Elemente hinzu. pom.xml

... <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j2-impl</artifactId> <version>VERSION</version> </dependency> ...
Gradle–Kotlin DSL

Fügen Sie Ihrer build.gradle.kts Datei Folgendes hinzu.

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

Verwenden Sie es 2.20.0 für die Mindestversion des log4j-slf4j2-impl Artefakts. Verwenden Sie für die neueste Version die Version, die in Maven Central veröffentlicht wurde. Ersetzen Sie VERSION durch die Version, die Sie verwenden werden.

SDK-specific Fehler und Warnungen

Wir empfehlen, dass Sie die Logger-Hierarchie „software.amazon.awssdk“ immer auf „WARN“ gesetzt lassen, um wichtige Meldungen aus den Client-Bibliotheken des SDK abzufangen. Wenn der Amazon S3-Client beispielsweise feststellt, dass Ihre Anwendung nicht ordnungsgemäß geschlossen wurde InputStream und möglicherweise Ressourcen verloren gehen, meldet der S3-Client dies in Form einer Warnmeldung in den Protokollen. Dadurch wird auch sichergestellt, dass Nachrichten protokolliert werden, wenn der Client Schwierigkeiten bei der Verarbeitung von Anforderungen oder Antworten hat.

Die folgende log4j2.xml Datei setzt den Wert rootLogger auf „WARN“, wodurch Warn- und Fehlermeldungen von allen Loggern in der Anwendung ausgegeben werden, einschließlich derer in der Hierarchie „software.amazon.awssdk“. Alternativ können Sie die Logger-Hierarchie „software.amazon.awssdk“ explizit auf „WARN“ setzen, falls sie verwendet wird. <Root level="ERROR">

Beispiel für eine Konfigurationsdatei Log4j2.xml

Diese Konfiguration protokolliert Meldungen auf den Ebenen „ERROR“ und „WARN“ für alle Logger-Hierarchien in der Konsole.

<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>

Request/response zusammenfassende Protokollierung

Jede Anfrage an eine AWS-Service generiert eine eindeutige AWS Anforderungs-ID, die nützlich ist, wenn Sie auf ein Problem mit der Bearbeitung einer Anfrage stoßen. AWS-Service AWS Auf Anforderungs-IDs kann programmgesteuert über SdkServiceException Objekte im SDK für jeden fehlgeschlagenen Serviceaufruf zugegriffen werden. Sie können auch über die Protokollebene „DEBUG“ des Loggers „software.amazon.awssdk.request“ gemeldet werden.

Die folgende Datei ermöglicht eine Zusammenfassung der Anfragen und Antworten. 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="ERROR"> <AppenderRef ref="ConsoleAppender"/> </Root> <Logger name="software.amazon.awssdk" level="WARN" /> <Logger name="software.amazon.awssdk.request" level="DEBUG" /> </Loggers> </Configuration>

Hier finden Sie ein Beispiel für die Protokollausgabe:

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

Wenn Sie nur an der Anforderungs-ID interessiert sind, verwenden Sie<Logger name="software.amazon.awssdk.requestId" level="DEBUG" />.

Debug-level SDK-Protokollierung

Wenn Sie weitere Informationen darüber benötigen, was das SDK tut, können Sie die Protokollierungsstufe des software.amazon.awssdk Loggers auf festlegenDEBUG. Auf dieser Ebene gibt das SDK eine große Menge an Details aus. Wir empfehlen daher, diese Stufe festzulegen, um Fehler mithilfe von Integrationstests zu beheben.

Auf dieser Protokollierungsebene protokolliert das SDK Informationen zur Konfiguration, zur Auflösung von Anmeldeinformationen, zum Abfangen der Ausführung, zu TLS-Aktivitäten auf hoher Ebene, zur Signierung von Anfragen und vielem mehr.

Im Folgenden finden Sie eine Auswahl von Anweisungen, die vom SDK auf DEBUG Ebene für einen S3Client#listBuckets() Aufruf ausgegeben werden.

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 ...

Die folgende log4j2.xml Datei konfiguriert die vorherige Ausgabe.

<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>

Aktivieren Sie die Drahtprotokollierung

Es kann nützlich sein, die genauen Anfragen und Antworten zu sehen, die das SDK für Java 2.x sendet und empfängt. Wenn Sie Zugriff auf diese Informationen benötigen, können Sie sie vorübergehend aktivieren, indem Sie die erforderliche Konfiguration hinzufügen, je nachdem, welchen HTTP-Client der Service-Client verwendet.

Standardmäßig verwenden synchrone Service-Clients, wie der S3Client, einen zugrunde liegenden Apache, und asynchrone Service-Clients HttpClient, wie der S3AsyncClient, verwenden einen nicht blockierenden Netty-HTTP-Client.

Hier ist eine Aufschlüsselung der HTTP-Clients, die Sie für die beiden Kategorien von Service-Clients verwenden können:

Auf der entsprechenden Registerkarte unten finden Sie die Konfigurationseinstellungen, die Sie je nach dem zugrunde liegenden HTTP-Client hinzufügen müssen.

Warnung

Wir empfehlen Ihnen, die Übertragungsprotokollierung ausschließlich für Debugging-Zwecke zu verwenden. Deaktivieren Sie sie in Produktionsumgebungen, da sie sensible Daten aufzeichnen kann. Sie protokolliert die gesamte Anfrage oder Antwort ohne Verschlüsselung, auch bei einem HTTPS-Aufruf. Bei großen Anfragen (z. B. um eine Datei hochzuladen Amazon S3) oder Antworten kann das ausführliche Wirelogging auch die Leistung Ihrer Anwendung erheblich beeinträchtigen.

ApacheHttpClient

Fügen Sie der log4j2.xml Konfigurationsdatei den Logger „org.apache.http.wire“ hinzu und setzen Sie das Level auf „DEBUG“.

Die folgende log4j2.xml Datei aktiviert das vollständige Wire-Logging für den 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>

Für das Wire-Logging mit Apache ist eine zusätzliche Maven-Abhängigkeit vom log4j-1.2-api Artefakt erforderlich, da dort 1.2 unter der Haube verwendet wird.

Die vollständigen Maven-Abhängigkeiten für log4j 2, einschließlich Wire-Logging für den Apache HTTP-Client, werden in den folgenden Build-Dateiausschnitten gezeigt.

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> ...

Gradle—Kotlin DSL

... 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") } ...

Wird 2.20.0 für die Mindestversion des Artefakts verwendet. log4j-bom Verwenden Sie für die neueste Version die Version, die in Maven Central veröffentlicht wurde. Ersetzen Sie VERSION durch die Version, die Sie verwenden werden.

Apache5HttpClient

Fügen Sie den Logger „org.apache.hc.client5.http.wire“ zur Konfigurationsdatei hinzu und setzen Sie das log4j2.xml Level auf „DEBUG“.

Die folgende Datei aktiviert das vollständige Wire-Logging für den Apache5. log4j2.xml 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.hc.client5.http.wire" level="DEBUG" /> </Loggers> </Configuration>
UrlConnectionHttpClient

Um Details für Service-Clients zu protokollieren, die den verwendenUrlConnectionHttpClient, erstellen Sie zunächst eine logging.properties Datei mit dem folgenden Inhalt:

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

Stellen Sie die folgende JVM-Systemeigenschaft mit dem vollständigen Pfad von ein: logging.properties

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

Bei dieser Konfiguration werden nur die Header der Anfrage und Antwort protokolliert, zum Beispiel:

<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}

Um die request/response Körper zu sehen, fügen Sie -Djavax.net.debug=all sie den JVM-Eigenschaften hinzu. Diese zusätzliche Eigenschaft protokolliert eine Vielzahl von Informationen, einschließlich aller SSL-Informationen.

Suchen Sie in der Protokollkonsole oder in der Protokolldatei nach dem Abschnitt des Protokolls, der die tatsächlichen Anfragen und Antworten enthält, "GET" oder "POST" wechseln Sie schnell zu diesem Abschnitt. "Plaintext before ENCRYPTION"Suchen Sie nach Anfragen und "Plaintext after DECRYPTION" nach Antworten, um den vollständigen Text der Kopfzeilen und Textkörper anzuzeigen.

NettyNioAsyncHttpClient

Wenn Ihr asynchroner Service-Client die Standardeinstellung verwendetNettyNioAsyncHttpClient, fügen Sie Ihrer log4j2.xml Datei zwei zusätzliche Logger hinzu, um HTTP-Header und -Texte zu protokollieren. request/response

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

Hier ist ein vollständiges Beispiel: 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>

Diese Einstellungen protokollieren alle Header-Details und request/response Textkörper.

AwsCrtAsyncHttpClient/AwsCrtHttpClient

Wenn Sie Ihren Service-Client so konfiguriert haben, dass er eine Instanz eines AWS CRT-based HTTP-Clients verwendet, können Sie Details protokollieren, indem Sie die JVM-Systemeigenschaften oder programmgesteuert festlegen.

Log to a file at "Debug" level

Mithilfe von Systemeigenschaften:

-Daws.crt.log.level=Trace -Daws.crt.log.destination=File -Daws.crt.log.filename=<path to file>

Programmatisch:

import software.amazon.awssdk.crt.Log; // Execute this statement before constructing the SDK service client. Log.initLoggingToFile(Log.LogLevel.Trace, "<path to file>");
Log to the console at "Debug" level

Mithilfe der Systemeigenschaften:

-Daws.crt.log.level=Trace -Daws.crt.log.destination=Stdout

Programmatisch:

import software.amazon.awssdk.crt.Log; // Execute this statement before constructing the SDK service client. Log.initLoggingToStdout(Log.LogLevel.Trace);

Aus Sicherheitsgründen protokollieren die AWS CRT-based HTTP-Clients auf der „Trace“ -Ebene nur Antwortheader. Anforderungsheader, Anforderungstexte und Antworttexte werden nicht protokolliert.