Skip to content

Commit 7fcd7f7

Browse files
authored
refactor: consistent naming of powertools. (#46)
1 parent 5af64e0 commit 7fcd7f7

File tree

11 files changed

+86
-74
lines changed

11 files changed

+86
-74
lines changed

docs/content/core/logger.mdx

+10-10
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ package helloworld;
6565

6666
import org.apache.logging.log4j.LogManager;
6767
import org.apache.logging.log4j.Logger;
68-
import software.amazon.lambda.logging.PowerLogger;
69-
import software.amazon.lambda.logging.PowerToolsLogging;
68+
import software.amazon.lambda.logging.PowertoolsLogger;
69+
import software.amazon.lambda.logging.PowertoolsLogging;
7070
...
7171

7272
/**
@@ -76,7 +76,7 @@ public class App implements RequestHandler<APIGatewayProxyRequestEvent, APIGatew
7676

7777
Logger log = LogManager.getLogger();
7878

79-
@PowerToolsLogging
79+
@PowertoolsLogging
8080
public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent input, final Context context) {
8181
...
8282
}
@@ -94,8 +94,8 @@ package helloworld;
9494

9595
import org.apache.logging.log4j.LogManager;
9696
import org.apache.logging.log4j.Logger;
97-
import software.amazon.lambda.logging.PowerLogger;
98-
import software.amazon.lambda.logging.PowerToolsLogging;
97+
import software.amazon.lambda.logging.PowertoolsLogger;
98+
import software.amazon.lambda.logging.PowertoolsLogging;
9999
...
100100

101101
/**
@@ -105,7 +105,7 @@ public class App implements RequestHandler<APIGatewayProxyRequestEvent, APIGatew
105105

106106
Logger log = LogManager.getLogger();
107107

108-
@PowerToolsLogging(logEvent = true)
108+
@PowertoolsLogging(logEvent = true)
109109
public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent input, final Context context) {
110110
...
111111
}
@@ -121,8 +121,8 @@ package helloworld;
121121

122122
import org.apache.logging.log4j.LogManager;
123123
import org.apache.logging.log4j.Logger;
124-
import software.amazon.lambda.logging.PowerLogger;
125-
import software.amazon.lambda.logging.PowerToolsLogging;
124+
import software.amazon.lambda.logging.PowertoolsLogger;
125+
import software.amazon.lambda.logging.PowertoolsLogging;
126126
...
127127

128128
/**
@@ -132,10 +132,10 @@ public class App implements RequestHandler<APIGatewayProxyRequestEvent, APIGatew
132132

133133
Logger log = LogManager.getLogger();
134134

135-
@PowerToolsLogging(logEvent = true)
135+
@PowertoolsLogging(logEvent = true)
136136
public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent input, final Context context) {
137137
...
138-
PowerLogger.appendKey("test", "willBeLogged");
138+
PowertoolsLogger.appendKey("test", "willBeLogged");
139139
...
140140
}
141141
}

example/HelloWorldFunction/src/main/java/helloworld/App.java

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
package helloworld;
22

3-
import java.io.BufferedReader;
4-
import java.io.IOException;
5-
import java.io.InputStreamReader;
6-
import java.net.URL;
7-
import java.util.HashMap;
8-
import java.util.Map;
9-
import java.util.stream.Collectors;
10-
113
import com.amazonaws.services.lambda.runtime.Context;
124
import com.amazonaws.services.lambda.runtime.RequestHandler;
135
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
@@ -16,11 +8,19 @@
168
import com.amazonaws.xray.entities.Entity;
179
import org.apache.logging.log4j.LogManager;
1810
import org.apache.logging.log4j.Logger;
19-
import software.amazon.lambda.powertools.logging.PowerLogger;
20-
import software.amazon.lambda.powertools.logging.PowerToolsLogging;
11+
import software.amazon.lambda.powertools.logging.PowertoolsLogger;
12+
import software.amazon.lambda.powertools.logging.PowertoolsLogging;
2113
import software.amazon.lambda.powertools.tracing.PowerToolsTracing;
2214
import software.amazon.lambda.powertools.tracing.PowerTracer;
2315

16+
import java.io.BufferedReader;
17+
import java.io.IOException;
18+
import java.io.InputStreamReader;
19+
import java.net.URL;
20+
import java.util.HashMap;
21+
import java.util.Map;
22+
import java.util.stream.Collectors;
23+
2424
import static software.amazon.lambda.powertools.tracing.PowerTracer.putMetadata;
2525
import static software.amazon.lambda.powertools.tracing.PowerTracer.withEntitySubsegment;
2626

@@ -31,15 +31,15 @@ public class App implements RequestHandler<APIGatewayProxyRequestEvent, APIGatew
3131

3232
Logger log = LogManager.getLogger();
3333

34-
@PowerToolsLogging(logEvent = true)
34+
@PowertoolsLogging(logEvent = true)
3535
@PowerToolsTracing
3636
public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent input, final Context context) {
3737
Map<String, String> headers = new HashMap<>();
3838

3939
headers.put("Content-Type", "application/json");
4040
headers.put("X-Custom-Header", "application/json");
4141

42-
PowerLogger.appendKey("test", "willBeLogged");
42+
PowertoolsLogger.appendKey("test", "willBeLogged");
4343

4444
APIGatewayProxyResponseEvent response = new APIGatewayProxyResponseEvent()
4545
.withHeaders(headers);

example/HelloWorldFunction/src/main/java/helloworld/AppStream.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
package helloworld;
22

3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
5+
import com.fasterxml.jackson.databind.ObjectMapper;
6+
import software.amazon.lambda.powertools.logging.PowertoolsLogging;
7+
38
import java.io.IOException;
49
import java.io.InputStream;
510
import java.io.OutputStream;
611
import java.util.Map;
712

8-
import com.amazonaws.services.lambda.runtime.Context;
9-
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
10-
import com.fasterxml.jackson.databind.ObjectMapper;
11-
import software.amazon.lambda.powertools.logging.PowerToolsLogging;
12-
1313
public class AppStream implements RequestStreamHandler {
1414
private static final ObjectMapper mapper = new ObjectMapper();
1515

1616
@Override
17-
@PowerToolsLogging(logEvent = true)
17+
@PowertoolsLogging(logEvent = true)
1818
public void handleRequest(InputStream input, OutputStream output, Context context) throws IOException {
1919
Map map = mapper.readValue(input, Map.class);
2020

powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowerLogger.java renamed to powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowertoolsLogger.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
import org.apache.logging.log4j.ThreadContext;
1717

1818
/**
19-
* A class of helper functions to add additional functionality to PowerToolsLogging.
19+
* A class of helper functions to add additional functionality to PowertoolsLogging.
2020
*
21-
* {@see PowerToolsLogging}
21+
* {@see PowertoolsLogging}
2222
*/
23-
public class PowerLogger {
23+
public class PowertoolsLogger {
2424

2525
/**
2626
* Appends an additional key and value to each log entry made. Duplicate values

powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowerToolsLogging.java renamed to powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowertoolsLogging.java

+10-10
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,17 @@
1919
import java.lang.annotation.Target;
2020

2121
/**
22-
* {@code PowerToolsLogging} is used to signal that the annotated method should be
23-
* extended with PowerToolsLogging functionality.
22+
* {@code PowertoolsLogging} is used to signal that the annotated method should be
23+
* extended with PowertoolsLogging functionality.
2424
*
25-
* <p>{@code PowerToolsLogging} provides an opinionated logger with output structured as JSON.</p>
25+
* <p>{@code PowertoolsLogging} provides an opinionated logger with output structured as JSON.</p>
2626
*
27-
* <p>{@code PowerToolsLogging} should be used with handleRequest method of a class
27+
* <p>{@code PowertoolsLogging} should be used with handleRequest method of a class
2828
* which implements either
2929
* {@code com.amazonaws.services.lambda.runtime.RequestHandler} or
3030
* {@code com.amazonaws.services.lambda.runtime.RequestStreamHandler}.</p>
3131
*
32-
* <p>By default {@code PowerToolsLogging} will load the following keys and values from the Lambda
32+
* <p>By default {@code PowertoolsLogging} will load the following keys and values from the Lambda
3333
* {@code com.amazonaws.services.lambda.runtime.Context}</p>
3434
*
3535
* <ul>
@@ -39,7 +39,7 @@
3939
* <li>MemoryLimitInMB</li>
4040
* </ul>
4141
*
42-
* <p>By default {@code PowerToolsLogging} will also create keys for:</p>
42+
* <p>By default {@code PowertoolsLogging} will also create keys for:</p>
4343
*
4444
* <ul>
4545
* <li>coldStart - True if this is the first invocation of this Lambda execution environment; else False</li>
@@ -50,14 +50,14 @@
5050
*
5151
* <p>The data and time of the log event will be written using {@link java.time.format.DateTimeFormatter#ISO_ZONED_DATE_TIME}</p>
5252
*
53-
* <p>By default {@code PowerToolsLogging} will not log the event which has trigger the invoke of the Lambda function.
54-
* This can be enabled using {@code @PowerToolsLogging(logEvent = true)}.</p>
53+
* <p>By default {@code PowertoolsLogging} will not log the event which has trigger the invoke of the Lambda function.
54+
* This can be enabled using {@code @PowertoolsLogging(logEvent = true)}.</p>
5555
*
56-
* <p>To append additional keys to each log entry you can use {@link PowerLogger#appendKey(String, String)}</p>
56+
* <p>To append additional keys to each log entry you can use {@link PowertoolsLogger#appendKey(String, String)}</p>
5757
*/
5858
@Retention(RetentionPolicy.RUNTIME)
5959
@Target(ElementType.METHOD)
60-
public @interface PowerToolsLogging {
60+
public @interface PowertoolsLogging {
6161

6262
boolean logEvent() default false;
6363
}

powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspect.java

+27-15
Original file line numberDiff line numberDiff line change
@@ -13,26 +13,29 @@
1313
*/
1414
package software.amazon.lambda.powertools.logging.internal;
1515

16-
import java.io.ByteArrayInputStream;
17-
import java.io.ByteArrayOutputStream;
18-
import java.io.IOException;
19-
import java.io.InputStream;
20-
import java.io.InputStreamReader;
21-
import java.io.OutputStreamWriter;
22-
import java.util.Map;
23-
import java.util.Optional;
24-
2516
import com.amazonaws.services.lambda.runtime.Context;
2617
import com.fasterxml.jackson.databind.ObjectMapper;
18+
import org.apache.logging.log4j.Level;
2719
import org.apache.logging.log4j.LogManager;
2820
import org.apache.logging.log4j.Logger;
2921
import org.apache.logging.log4j.ThreadContext;
22+
import org.apache.logging.log4j.core.LoggerContext;
23+
import org.apache.logging.log4j.core.config.Configurator;
3024
import org.apache.logging.log4j.core.util.IOUtils;
3125
import org.aspectj.lang.ProceedingJoinPoint;
3226
import org.aspectj.lang.annotation.Around;
3327
import org.aspectj.lang.annotation.Aspect;
3428
import org.aspectj.lang.annotation.Pointcut;
35-
import software.amazon.lambda.powertools.logging.PowerToolsLogging;
29+
import software.amazon.lambda.powertools.logging.PowertoolsLogging;
30+
31+
import java.io.ByteArrayInputStream;
32+
import java.io.ByteArrayOutputStream;
33+
import java.io.IOException;
34+
import java.io.InputStream;
35+
import java.io.InputStreamReader;
36+
import java.io.OutputStreamWriter;
37+
import java.util.Map;
38+
import java.util.Optional;
3639

3740
import static java.util.Optional.empty;
3841
import static java.util.Optional.of;
@@ -46,15 +49,24 @@
4649
@Aspect
4750
public final class LambdaLoggingAspect {
4851
private static final ObjectMapper mapper = new ObjectMapper();
52+
private static final String LOG_LEVEL = System.getenv("LOG_LEVEL");
53+
54+
static {
55+
if (LOG_LEVEL != null) {
56+
LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
57+
Configurator.setAllLevels(LogManager.getRootLogger().getName(), Level.getLevel(LOG_LEVEL));
58+
ctx.updateLoggers();
59+
}
60+
}
4961

5062
@SuppressWarnings({"EmptyMethod", "unused"})
51-
@Pointcut("@annotation(powerToolsLogging)")
52-
public void callAt(PowerToolsLogging powerToolsLogging) {
63+
@Pointcut("@annotation(powertoolsLogging)")
64+
public void callAt(PowertoolsLogging powertoolsLogging) {
5365
}
5466

55-
@Around(value = "callAt(powerToolsLogging) && execution(@PowerToolsLogging * *.*(..))", argNames = "pjp,powerToolsLogging")
67+
@Around(value = "callAt(powertoolsLogging) && execution(@PowertoolsLogging * *.*(..))", argNames = "pjp,powertoolsLogging")
5668
public Object around(ProceedingJoinPoint pjp,
57-
PowerToolsLogging powerToolsLogging) throws Throwable {
69+
PowertoolsLogging powertoolsLogging) throws Throwable {
5870
Object[] proceedArgs = pjp.getArgs();
5971

6072
extractContext(pjp)
@@ -65,7 +77,7 @@ public Object around(ProceedingJoinPoint pjp,
6577
});
6678

6779

68-
if (powerToolsLogging.logEvent()) {
80+
if (powertoolsLogging.logEvent()) {
6981
proceedArgs = logEvent(pjp);
7082
}
7183

powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/PowerLoggerTest.java renamed to powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/PowertoolsLoggerTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import static org.assertj.core.api.Assertions.assertThat;
2121

2222

23-
class PowerLoggerTest {
23+
class PowertoolsLoggerTest {
2424

2525
@BeforeEach
2626
void setUp() {
@@ -29,7 +29,7 @@ void setUp() {
2929

3030
@Test
3131
void shouldSetCustomKeyOnThreadContext() {
32-
PowerLogger.appendKey("test", "value");
32+
PowertoolsLogger.appendKey("test", "value");
3333

3434
assertThat(ThreadContext.getImmutableContext())
3535
.hasSize(1)

powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabled.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,19 @@
1717
import com.amazonaws.services.lambda.runtime.RequestHandler;
1818
import org.apache.logging.log4j.LogManager;
1919
import org.apache.logging.log4j.Logger;
20-
import software.amazon.lambda.powertools.logging.PowerToolsLogging;
20+
import software.amazon.lambda.powertools.logging.PowertoolsLogging;
2121

2222
public class PowerLogToolEnabled implements RequestHandler<Object, Object> {
2323
private final Logger LOG = LogManager.getLogger(PowerToolLogEventEnabled.class);
2424

2525
@Override
26-
@PowerToolsLogging
26+
@PowertoolsLogging
2727
public Object handleRequest(Object input, Context context) {
2828
LOG.info("Test event");
2929
return null;
3030
}
3131

32-
@PowerToolsLogging
32+
@PowertoolsLogging
3333
public void anotherMethod() {
3434
System.out.println("test");
3535
}

powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabledForStream.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@
1313
*/
1414
package software.amazon.lambda.powertools.logging.handlers;
1515

16-
import java.io.InputStream;
17-
import java.io.OutputStream;
18-
1916
import com.amazonaws.services.lambda.runtime.Context;
2017
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
21-
import software.amazon.lambda.powertools.logging.PowerToolsLogging;
18+
import software.amazon.lambda.powertools.logging.PowertoolsLogging;
19+
20+
import java.io.InputStream;
21+
import java.io.OutputStream;
2222

2323
public class PowerLogToolEnabledForStream implements RequestStreamHandler {
2424

25-
@PowerToolsLogging
25+
@PowertoolsLogging
2626
@Override
2727
public void handleRequest(InputStream input, OutputStream output, Context context) {
2828

powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabled.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515

1616
import com.amazonaws.services.lambda.runtime.Context;
1717
import com.amazonaws.services.lambda.runtime.RequestHandler;
18-
import software.amazon.lambda.powertools.logging.PowerToolsLogging;
18+
import software.amazon.lambda.powertools.logging.PowertoolsLogging;
1919

2020
public class PowerToolLogEventEnabled implements RequestHandler<Object, Object> {
2121

22-
@PowerToolsLogging(logEvent = true)
22+
@PowertoolsLogging(logEvent = true)
2323
@Override
2424
public Object handleRequest(Object input, Context context) {
2525
return null;

powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabledForStream.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,19 @@
1313
*/
1414
package software.amazon.lambda.powertools.logging.handlers;
1515

16+
import com.amazonaws.services.lambda.runtime.Context;
17+
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
18+
import com.fasterxml.jackson.databind.ObjectMapper;
19+
import software.amazon.lambda.powertools.logging.PowertoolsLogging;
20+
1621
import java.io.IOException;
1722
import java.io.InputStream;
1823
import java.io.OutputStream;
1924
import java.util.Map;
2025

21-
import com.amazonaws.services.lambda.runtime.Context;
22-
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
23-
import com.fasterxml.jackson.databind.ObjectMapper;
24-
import software.amazon.lambda.powertools.logging.PowerToolsLogging;
25-
2626
public class PowerToolLogEventEnabledForStream implements RequestStreamHandler {
2727

28-
@PowerToolsLogging(logEvent = true)
28+
@PowertoolsLogging(logEvent = true)
2929
@Override
3030
public void handleRequest(InputStream input, OutputStream output, Context context) throws IOException {
3131
ObjectMapper mapper = new ObjectMapper();

0 commit comments

Comments
 (0)