22// SPDX-License-Identifier: Apache-2.0
33package software.amazon.lambda.durable.examples.general;
44
5+ import org.slf4j.Logger;
6+ import org.slf4j.LoggerFactory;
57import software.amazon.lambda.durable.DurableContext;
68import software.amazon.lambda.durable.DurableHandler;
79import software.amazon.lambda.durable.examples.types.GreetingRequest;
1214 * <p>The logger automatically includes execution metadata (durableExecutionArn, requestId, operationId, operationName)
1315 * in log entries via MDC. By default, logs are suppressed during replay to avoid duplicates.
1416 */
15- < span class ="fc " id ="L15 "> public class LoggingExample extends DurableHandler<GreetingRequest, String> {</ span >
17+ < span class ="fc " id ="L17 "> public class LoggingExample extends DurableHandler<GreetingRequest, String> {</ span >
18+ < span class ="fc " id ="L18 "> Logger logger = LoggerFactory.getLogger(LoggingExample.class);</ span >
1619
1720 @Override
1821 public String handleRequest(GreetingRequest input, DurableContext context) {
1922 // Log at execution level (outside any step)
20- < span class ="fc " id ="L20 "> context.getLogger().info("Processing greeting for: {}", input.getName());</ span >
23+ < span class ="fc " id ="L23 "> context.getLogger(logger ).info("Processing greeting for: {}", input.getName());</ span >
2124
2225 // Step 1: Create greeting - logs inside step include operation context
23- < span class ="fc " id ="L23 "> var greeting = context.step("create-greeting", String.class, ctx -> {</ span >
24- < span class ="fc " id ="L24 "> ctx.getLogger().info("Creating greeting message");</ span >
25- < span class ="fc " id ="L25 "> return "Hello, " + input.getName();</ span >
26+ < span class ="fc " id ="L26 "> var greeting = context.step("create-greeting", String.class, ctx -> {</ span >
27+ < span class ="fc " id ="L27 "> ctx.getLogger(logger ).info("Creating greeting message");</ span >
28+ < span class ="fc " id ="L28 "> return "Hello, " + input.getName();</ span >
2629 });
2730
2831 // Step 2: Transform
29- < span class ="fc " id ="L29 "> var result = context.step("transform", String.class, ctx -> {</ span >
30- < span class ="fc " id ="L30 "> ctx.getLogger().info("Transforming greeting to uppercase");</ span >
31- < span class ="fc " id ="L31 "> return greeting.toUpperCase() + "!";</ span >
32+ < span class ="fc " id ="L32 "> var result = context.step("transform", String.class, ctx -> {</ span >
33+ < span class ="fc " id ="L33 "> ctx.getLogger().info("Transforming greeting to uppercase");</ span >
34+ < span class ="fc " id ="L34 "> return greeting.toUpperCase() + "!";</ span >
3235 });
3336
34- < span class ="fc " id ="L34 "> context.getLogger().info("Completed processing, result: {}", result);</ span >
35- < span class ="fc " id ="L35 "> return result;</ span >
37+ < span class ="fc " id ="L37 "> context.getLogger().info("Completed processing, result: {}", result);</ span >
38+ < span class ="fc " id ="L38 "> return result;</ span >
3639 }
3740}
3841</ pre > < div class ="footer "> < span class ="right "> Created with < a href ="http://www.jacoco.org/jacoco "> JaCoCo</ a > 0.8.15.202606040825</ span > </ div > </ body > </ html >
0 commit comments