Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 813d8fc

Browse files
committedFeb 27, 2024
Log user init and invoke exceptions as ERROR in JSON format (#49)
Co-authored-by: Daniel Torok <[email protected]>
1 parent 3d8dfb6 commit 813d8fc

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed
 

‎aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/AWSLambda.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ public static void main(String[] args) {
189189

190190
private static void startRuntime(String handler) {
191191
try (LogSink logSink = createLogSink()) {
192-
LambdaLogger logger = new LambdaContextLogger(
192+
LambdaContextLogger logger = new LambdaContextLogger(
193193
logSink,
194194
LogLevel.fromString(LambdaEnvironment.LAMBDA_LOG_LEVEL),
195195
LogFormat.fromString(LambdaEnvironment.LAMBDA_LOG_FORMAT)
@@ -200,7 +200,7 @@ private static void startRuntime(String handler) {
200200
}
201201
}
202202

203-
private static void startRuntime(String handler, LambdaLogger lambdaLogger) throws Throwable {
203+
private static void startRuntime(String handler, LambdaContextLogger lambdaLogger) throws Throwable {
204204
UnsafeUtil.disableIllegalAccessWarning();
205205

206206
System.setOut(new PrintStream(new LambdaOutputStream(System.out), false, "UTF-8"));
@@ -222,7 +222,7 @@ private static void startRuntime(String handler, LambdaLogger lambdaLogger) thro
222222
try {
223223
requestHandler = findRequestHandler(handler, customerClassLoader);
224224
} catch (UserFault userFault) {
225-
lambdaLogger.log(userFault.reportableError());
225+
lambdaLogger.log(userFault.reportableError(), lambdaLogger.getLogFormat() == LogFormat.JSON ? LogLevel.ERROR : LogLevel.UNDEFINED);
226226
reportInitError(new Failure(userFault), runtimeClient);
227227
System.exit(1);
228228
return;
@@ -265,13 +265,13 @@ private static void startRuntime(String handler, LambdaLogger lambdaLogger) thro
265265
serializeAsXRayJson(t));
266266
} finally {
267267
if (userFault != null) {
268-
lambdaLogger.log(userFault.reportableError());
268+
lambdaLogger.log(userFault.reportableError(), lambdaLogger.getLogFormat() == LogFormat.JSON ? LogLevel.ERROR : LogLevel.UNDEFINED);
269269
}
270270
}
271271
}
272272
}
273273

274-
static void onInitComplete(final LambdaRuntimeClient runtimeClient, final LambdaLogger lambdaLogger) throws IOException {
274+
static void onInitComplete(final LambdaRuntimeClient runtimeClient, final LambdaContextLogger lambdaLogger) throws IOException {
275275
try {
276276
Core.getGlobalContext().beforeCheckpoint(null);
277277
// Blocking call to RAPID /restore/next API, will return after taking snapshot.
@@ -292,10 +292,10 @@ static void onInitComplete(final LambdaRuntimeClient runtimeClient, final Lambda
292292
}
293293
}
294294

295-
private static void logExceptionCloudWatch(LambdaLogger lambdaLogger, Exception exc) {
295+
private static void logExceptionCloudWatch(LambdaContextLogger lambdaLogger, Exception exc) {
296296
UserFault.filterStackTrace(exc);
297297
UserFault userFault = UserFault.makeUserFault(exc, true);
298-
lambdaLogger.log(userFault.reportableError());
298+
lambdaLogger.log(userFault.reportableError(), lambdaLogger.getLogFormat() == LogFormat.JSON ? LogLevel.ERROR : LogLevel.UNDEFINED);
299299
}
300300

301301
static void reportInitError(final Failure failure,

‎aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/logging/AbstractLambdaLogger.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,8 @@ public void log(byte[] message) {
6565
public void setLambdaContext(LambdaContext lambdaContext) {
6666
this.logFormatter.setLambdaContext(lambdaContext);
6767
}
68+
69+
public LogFormat getLogFormat() {
70+
return logFormat;
71+
}
6872
}

0 commit comments

Comments
 (0)
Please sign in to comment.