Skip to content

Commit 234f0e4

Browse files
committed
Update logging in java-basic examples
- Use Context logger for all handlers, removing SLF4J dependency - Unit testing still requires SLF4J dependency to show this logging option - Tested all handlers manually, minor updates to README
1 parent 6161f7e commit 234f0e4

File tree

11 files changed

+45
-75
lines changed

11 files changed

+45
-75
lines changed

sample-apps/blank-java/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<groupId>org.slf4j</groupId>
2727
<artifactId>slf4j-nop</artifactId>
2828
<version>2.0.6</version>
29-
</dependency>
29+
</dependency>
3030
<dependency>
3131
<groupId>software.amazon.awssdk</groupId>
3232
<artifactId>lambda</artifactId>
@@ -79,7 +79,7 @@
7979
<exclude>META-INF/services/**</exclude>
8080
</excludes>
8181
</filter>
82-
</filters>
82+
</filters>
8383
</configuration>
8484
<executions>
8585
<execution>

sample-apps/java-basic/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ To use a different handler, change the value of the Handler setting in the appli
9595
CodeUri: build/distributions/java-basic.zip
9696
Handler: example.HandlerList
9797

98-
Deploy the change, and then use the invoke script to test the new configuration. For handlers, that don't take a JSON object as input, pass the type (`string`, `int` or `list`) as an argument to the invoke script.
98+
Deploy the change, and then use the invoke script to test the new configuration. For handlers, that don't take a JSON object as input, pass the type (`string`, `int`, `list`, or `divide`) as an argument to the invoke script.
9999

100100
./3-invoke.sh list
101101
{

sample-apps/java-basic/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ repositories {
88

99
dependencies {
1010
implementation 'com.amazonaws:aws-lambda-java-core:1.2.1'
11-
runtimeOnly 'org.apache.logging.log4j:log4j-slf4j18-impl:[2.17.1,)'
12-
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
13-
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.6.0'
11+
implementation 'org.slf4j:slf4j-nop:2.0.6'
12+
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
13+
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
1414
}
1515

1616
test {

sample-apps/java-basic/pom.xml

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,32 +18,20 @@
1818
<version>1.2.1</version>
1919
</dependency>
2020
<dependency>
21-
<groupId>org.apache.logging.log4j</groupId>
22-
<artifactId>log4j-api</artifactId>
23-
<version>[2.17.1,)</version>
24-
<scope>test</scope>
25-
</dependency>
26-
<dependency>
27-
<groupId>org.apache.logging.log4j</groupId>
28-
<artifactId>log4j-core</artifactId>
29-
<version>[2.17.1,)</version>
30-
<scope>test</scope>
31-
</dependency>
32-
<dependency>
33-
<groupId>org.apache.logging.log4j</groupId>
34-
<artifactId>log4j-slf4j18-impl</artifactId>
35-
<version>[2.17.1,)</version>
21+
<groupId>org.slf4j</groupId>
22+
<artifactId>slf4j-nop</artifactId>
23+
<version>2.0.6</version>
3624
</dependency>
3725
<dependency>
3826
<groupId>org.junit.jupiter</groupId>
3927
<artifactId>junit-jupiter-api</artifactId>
40-
<version>5.6.0</version>
28+
<version>5.8.2</version>
4129
<scope>test</scope>
4230
</dependency>
4331
<dependency>
4432
<groupId>org.junit.jupiter</groupId>
4533
<artifactId>junit-jupiter-engine</artifactId>
46-
<version>5.6.0</version>
34+
<version>5.8.2</version>
4735
<scope>test</scope>
4836
</dependency>
4937
</dependencies>
@@ -62,10 +50,13 @@
6250
<createDependencyReducedPom>false</createDependencyReducedPom>
6351
<filters>
6452
<filter>
65-
<artifact>com.example:*</artifact>
66-
<excludes>
67-
<exclude>META-INF/MANIFEST.MF</exclude>
68-
</excludes>
53+
<artifact>*:*</artifact>
54+
<excludes>
55+
<exclude>module-info.class</exclude>
56+
<exclude>META-INF/*</exclude>
57+
<exclude>META-INF/versions/**</exclude>
58+
<exclude>META-INF/services/**</exclude>
59+
</excludes>
6960
</filter>
7061
</filters>
7162
</configuration>
Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,21 @@
11
package example;
22

33
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.LambdaLogger;
45
import com.amazonaws.services.lambda.runtime.RequestHandler;
56

6-
import org.slf4j.Logger;
7-
import org.slf4j.LoggerFactory;
8-
97
import java.util.Map;
108

119
// Handler value: example.Handler
1210
public class Handler implements RequestHandler<Map<String,String>, Void>{
1311

14-
private static final Logger logger = LoggerFactory.getLogger(Handler.class);
15-
1612
@Override
1713
public Void handleRequest(Map<String,String> event, Context context)
1814
{
19-
logger.info("ENVIRONMENT VARIABLES: " + System.getenv());
20-
logger.info("EVENT: " + event);
21-
logger.info("EVENT TYPE: " + event.getClass());
15+
LambdaLogger logger = context.getLogger();
16+
logger.log("ENVIRONMENT VARIABLES: " + System.getenv());
17+
logger.log("EVENT: " + event);
18+
logger.log("EVENT TYPE: " + event.getClass());
2219
return null;
2320
}
2421
}

sample-apps/java-basic/src/main/java/example/HandlerDivide.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,27 @@
11
package example;
22

33
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.LambdaLogger;
45
import com.amazonaws.services.lambda.runtime.RequestHandler;
56

67
import java.util.List;
78

8-
import org.slf4j.Logger;
9-
import org.slf4j.LoggerFactory;
10-
119
// Handler value: example.HandlerDivide
1210
public class HandlerDivide implements RequestHandler<List<Integer>, Integer>{
13-
14-
private static final Logger logger = LoggerFactory.getLogger(HandlerDivide.class);
1511
/*
1612
* Takes a list of two integers and divides them.
1713
*/
1814
@Override
1915
public Integer handleRequest(List<Integer> event, Context context)
2016
{
17+
LambdaLogger logger = context.getLogger();
2118
if ( event.size() != 2 )
2219
{
2320
throw new InputLengthException("Input must be an array that contains 2 numbers.");
2421
}
2522
int numerator = event.get(0);
2623
int denominator = event.get(1);
27-
logger.info("EVENT: Numerator is " + event.get(0).toString() +
24+
logger.log("EVENT: Numerator is " + event.get(0).toString() +
2825
"; Denominator is " + event.get(1).toString());
2926
return numerator/denominator;
3027
}
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,21 @@
11
package example;
22

33
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.LambdaLogger;
45
import com.amazonaws.services.lambda.runtime.RequestHandler;
56

6-
import org.slf4j.Logger;
7-
import org.slf4j.LoggerFactory;
8-
97
// Handler value: example.HandlerInteger
108
public class HandlerInteger implements RequestHandler<Integer, Integer>{
119

12-
private static final Logger logger = LoggerFactory.getLogger(HandlerInteger.class);
13-
1410
@Override
1511
/*
1612
* Takes an Integer as input, adds 1, and returns it.
1713
*/
1814
public Integer handleRequest(Integer event, Context context)
1915
{
20-
logger.info("EVENT: " + event);
21-
logger.info("EVENT TYPE: " + event.getClass().toString());
16+
LambdaLogger logger = context.getLogger();
17+
logger.log("EVENT: " + event);
18+
logger.log("EVENT TYPE: " + event.getClass().toString());
2219
return event + 1;
2320
}
2421
}
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,23 @@
11
package example;
22

33
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.LambdaLogger;
45
import com.amazonaws.services.lambda.runtime.RequestHandler;
56

6-
import org.slf4j.Logger;
7-
import org.slf4j.LoggerFactory;
8-
97
import java.util.List;
108

119
// Handler value: example.HandlerList
1210
public class HandlerList implements RequestHandler<List<Integer>, Integer>{
1311

14-
private static final Logger logger = LoggerFactory.getLogger(HandlerList.class);
15-
1612
@Override
1713
/*
1814
* Takes a list of Integers and returns its sum.
1915
*/
2016
public Integer handleRequest(List<Integer> event, Context context)
2117
{
22-
logger.info("EVENT: " + event);
23-
logger.info("EVENT TYPE: " + event.getClass().toString());
18+
LambdaLogger logger = context.getLogger();
19+
logger.log("EVENT: " + event);
20+
logger.log("EVENT TYPE: " + event.getClass().toString());
2421
return event.stream().mapToInt(Integer::intValue).sum();
2522
}
2623
}

sample-apps/java-basic/src/main/java/example/HandlerStream.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,24 @@
11
package example;
22

33
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.LambdaLogger;
45
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
56

67
import java.io.InputStream;
78
import java.io.IOException;
89
import java.io.OutputStream;
910

10-
import org.slf4j.Logger;
11-
import org.slf4j.LoggerFactory;
12-
1311
// Handler value: example.HandlerStream
1412
public class HandlerStream implements RequestStreamHandler {
1513

16-
private static final Logger logger = LoggerFactory.getLogger(HandlerStream.class);
17-
1814
@Override
1915
/*
2016
* Takes an InputStream and an OutputStream. Reads from the InputStream,
2117
* and copies all characters to the OutputStream.
2218
*/
2319
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException
2420
{
21+
LambdaLogger logger = context.getLogger();
2522
int nextChar;
2623
try {
2724
while ((nextChar = inputStream.read()) != -1) {
@@ -32,7 +29,7 @@ public void handleRequest(InputStream inputStream, OutputStream outputStream, Co
3229
} finally {
3330
inputStream.close();
3431
String finalString = outputStream.toString();
35-
logger.info("Final string result: " + finalString);
32+
logger.log("Final string result: " + finalString);
3633
outputStream.close();
3734
}
3835
}
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,21 @@
11
package example;
22

33
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.LambdaLogger;
45
import com.amazonaws.services.lambda.runtime.RequestHandler;
56

6-
import org.slf4j.Logger;
7-
import org.slf4j.LoggerFactory;
8-
97
// Handler value: example.HandlerString
108
public class HandlerString implements RequestHandler<String, String>{
119

12-
private static final Logger logger = LoggerFactory.getLogger(HandlerString.class);
13-
1410
@Override
1511
/*
1612
* Takes a String as input, and converts all characters to lowercase.
1713
*/
1814
public String handleRequest(String event, Context context)
1915
{
20-
logger.info("EVENT: " + event);
21-
logger.info("EVENT TYPE: " + event.getClass().toString());
16+
LambdaLogger logger = context.getLogger();
17+
logger.log("EVENT: " + event);
18+
logger.log("EVENT TYPE: " + event.getClass().toString());
2219
return event.toLowerCase();
2320
}
2421
}

sample-apps/java-basic/src/main/java/example/HandlerWeatherData.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,22 @@
11
package example;
22

33
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.LambdaLogger;
45
import com.amazonaws.services.lambda.runtime.RequestHandler;
56

6-
import org.slf4j.Logger;
7-
import org.slf4j.LoggerFactory;
8-
97
// Handler value: example.HandlerWeatherData
108
public class HandlerWeatherData implements RequestHandler<WeatherData, WeatherData>{
119

12-
private static final Logger logger = LoggerFactory.getLogger(WeatherData.class);
13-
1410
@Override
1511
/*
1612
* Takes in a WeatherData event object and updates its attributes with dummy values.
1713
* Returns the updated WeatherData object.
1814
*/
1915
public WeatherData handleRequest(WeatherData event, Context context)
2016
{
21-
logger.info("EVENT: " + event);
22-
logger.info("EVENT TYPE: " + event.getClass().toString());
17+
LambdaLogger logger = context.getLogger();
18+
logger.log("EVENT: " + event);
19+
logger.log("EVENT TYPE: " + event.getClass().toString());
2320

2421
event.setHumidityPct(50.5);
2522
event.setPressureHPa(1005);

0 commit comments

Comments
 (0)