Anonymous
Quarkus-Logging-Json Wrap
Post
by Anonymous » 21 Aug 2025, 08:18
Ich verwende Quarkus-Logging-Json in meinem Projekt und möchte meinen Lambda-Clients wie folgt automatische EMF-Protokolle hinzufügen: < /p>
Code: Select all
LambdaAsyncClient.builder()
.httpClient(NettyNioAsyncHttpClient.create())
.credentialsProvider(() -> AwsSessionCredentials.builder()
.accessKeyId("accessKey")
.secretAccessKey("secretKey")
.sessionToken("sessionToken")
.build())
.overrideConfiguration(config -> {
EmfMetricLoggingPublisher.builder()
.namespace("namespace")
.build()
})
< /code>
Der emfmetricLoggingPublisher "veröffentlichen" loges zur Konsole, aber Quarkus-Logging-Json wechselt dies in: < /p>
{
"timestamp": "2025-08-20T06:56:35.053949Z",
"sequence": 1,
"loggerClassName": "org.slf4j.impl.Slf4jLogger",
"loggerName": "software.amazon.awssdk.metrics.publishers.emf.EmfMetricLoggingPublisher",
"level": "INFO",
"message": "{\"_aws\":{\"Timestamp\":1755672995053,\"LogGroupName\":\"/aws/lambda/LogGroup\",\"CloudWatchMetrics\":[{\"Namespace\":\"namespace\",\"Dimensions\":[[\"OperationName\",\"ServiceId\"]],\"Metrics\":[{\"Name\":\"AvailableConcurrency\"},{\"Name\":\"PendingConcurrencyAcquires\"},{\"Name\":\"ServiceCallDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"EndpointResolveDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"MaxConcurrency\"},{\"Name\":\"BackoffDelayDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"MarshallingDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"LeasedConcurrency\"},{\"Name\":\"SigningDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"ConcurrencyAcquireDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"ApiCallSuccessful\"},{\"Name\":\"RetryCount\"},{\"Name\":\"UnmarshallingDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"ApiCallDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"CredentialsFetchDuration\",\"Unit\":\"Milliseconds\"}]}]},\"AvailableConcurrency\":0,\"PendingConcurrencyAcquires\":0,\"OperationName\":\"Invoke\",\"ServiceCallDuration\":51.0,\"EndpointResolveDuration\":0.0,\"MaxConcurrency\":50,\"BackoffDelayDuration\":0.0,\"ServiceId\":\"Lambda\",\"MarshallingDuration\":0.0,\"LeasedConcurrency\":0,\"SigningDuration\":0.0,\"ConcurrencyAcquireDuration\":19.0,\"ApiCallSuccessful\":1.0,\"RetryCount\":0,\"UnmarshallingDuration\":0.0,\"ApiCallDuration\":51.0,\"CredentialsFetchDuration\":0.0}",
"threadName": "sdk-async-response-1-0",
"threadId": 1,
"mdc": {},
"ndc": "",
"hostName": "unknown-host.unknown-domain",
"processName": "/var/task/bootstrap",
"processId": 1
}
< /code>
Gibt es eine Möglichkeit, diese Verpackung für einen bestimmten Handler zu deaktivieren?quarkus.log.category."software.amazon.awssdk.metrics.publishers.emf.EmfMetricLoggingPublisher".handlers=EMF_CONSOLE
quarkus.log.category."software.amazon.awssdk.metrics.publishers.emf.EmfMetricLoggingPublisher".use-parent-handlers=false
quarkus.log.handler.console.EMF_CONSOLE.level=INFO
quarkus.log.handler.console.EMF_CONSOLE.format=%m%n
# This would then disable the wrapping
quarkus.log.handler.console.EMF_CONSOLE.json=false
1755757097
Anonymous
Ich verwende Quarkus-Logging-Json in meinem Projekt und möchte meinen Lambda-Clients wie folgt automatische EMF-Protokolle hinzufügen: < /p> [code]LambdaAsyncClient.builder() .httpClient(NettyNioAsyncHttpClient.create()) .credentialsProvider(() -> AwsSessionCredentials.builder() .accessKeyId("accessKey") .secretAccessKey("secretKey") .sessionToken("sessionToken") .build()) .overrideConfiguration(config -> { EmfMetricLoggingPublisher.builder() .namespace("namespace") .build() }) < /code> Der emfmetricLoggingPublisher "veröffentlichen" loges zur Konsole, aber Quarkus-Logging-Json wechselt dies in: < /p> { "timestamp": "2025-08-20T06:56:35.053949Z", "sequence": 1, "loggerClassName": "org.slf4j.impl.Slf4jLogger", "loggerName": "software.amazon.awssdk.metrics.publishers.emf.EmfMetricLoggingPublisher", "level": "INFO", "message": "{\"_aws\":{\"Timestamp\":1755672995053,\"LogGroupName\":\"/aws/lambda/LogGroup\",\"CloudWatchMetrics\":[{\"Namespace\":\"namespace\",\"Dimensions\":[[\"OperationName\",\"ServiceId\"]],\"Metrics\":[{\"Name\":\"AvailableConcurrency\"},{\"Name\":\"PendingConcurrencyAcquires\"},{\"Name\":\"ServiceCallDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"EndpointResolveDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"MaxConcurrency\"},{\"Name\":\"BackoffDelayDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"MarshallingDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"LeasedConcurrency\"},{\"Name\":\"SigningDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"ConcurrencyAcquireDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"ApiCallSuccessful\"},{\"Name\":\"RetryCount\"},{\"Name\":\"UnmarshallingDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"ApiCallDuration\",\"Unit\":\"Milliseconds\"},{\"Name\":\"CredentialsFetchDuration\",\"Unit\":\"Milliseconds\"}]}]},\"AvailableConcurrency\":0,\"PendingConcurrencyAcquires\":0,\"OperationName\":\"Invoke\",\"ServiceCallDuration\":51.0,\"EndpointResolveDuration\":0.0,\"MaxConcurrency\":50,\"BackoffDelayDuration\":0.0,\"ServiceId\":\"Lambda\",\"MarshallingDuration\":0.0,\"LeasedConcurrency\":0,\"SigningDuration\":0.0,\"ConcurrencyAcquireDuration\":19.0,\"ApiCallSuccessful\":1.0,\"RetryCount\":0,\"UnmarshallingDuration\":0.0,\"ApiCallDuration\":51.0,\"CredentialsFetchDuration\":0.0}", "threadName": "sdk-async-response-1-0", "threadId": 1, "mdc": {}, "ndc": "", "hostName": "unknown-host.unknown-domain", "processName": "/var/task/bootstrap", "processId": 1 } < /code> Gibt es eine Möglichkeit, diese Verpackung für einen bestimmten Handler zu deaktivieren?quarkus.log.category."software.amazon.awssdk.metrics.publishers.emf.EmfMetricLoggingPublisher".handlers=EMF_CONSOLE quarkus.log.category."software.amazon.awssdk.metrics.publishers.emf.EmfMetricLoggingPublisher".use-parent-handlers=false quarkus.log.handler.console.EMF_CONSOLE.level=INFO quarkus.log.handler.console.EMF_CONSOLE.format=%m%n # This would then disable the wrapping quarkus.log.handler.console.EMF_CONSOLE.json=false [/code]