Skip to content

Commit a679d6d

Browse files
committed
Add additional logs
1 parent 673cf26 commit a679d6d

File tree

3 files changed

+31
-9
lines changed

3 files changed

+31
-9
lines changed

lambda-runtime/src/commonMain/kotlin/io/github/trueangle/knative/lambda/runtime/LambdaRuntime.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import io.github.trueangle.knative.lambda.runtime.api.LambdaClient
66
import io.github.trueangle.knative.lambda.runtime.handler.LambdaBufferedHandler
77
import io.github.trueangle.knative.lambda.runtime.handler.LambdaHandler
88
import io.github.trueangle.knative.lambda.runtime.handler.LambdaStreamHandler
9+
import io.github.trueangle.knative.lambda.runtime.log.KtorLogger
910
import io.github.trueangle.knative.lambda.runtime.log.Log
1011
import io.github.trueangle.knative.lambda.runtime.log.LogLevel
1112
import io.ktor.client.HttpClient
@@ -33,10 +34,10 @@ object LambdaRuntime {
3334
json(Json { explicitNulls = false })
3435
}
3536
install(Logging) {
36-
level = if (Log.currentLogLevel == LogLevel.TRACE) KtorLogLevel.ALL else KtorLogLevel.NONE
37-
logger = object : Logger {
38-
override fun log(message: String) = Log.trace(message)
39-
}
37+
val kLogger = KtorLogger()
38+
level = kLogger.getLevel()
39+
logger = kLogger
40+
4041
filter { it.headers.contains("Lambda-Runtime-Function-Response-Mode") }
4142
}
4243
}
@@ -86,7 +87,6 @@ object LambdaRuntime {
8687
val response = bufferedResponse(context) { handler.handleRequest(event, context) }
8788

8889
Log.info("$handlerName invocation completed")
89-
Log.trace("$handlerName's buffered response: $response")
9090

9191
client.sendResponse(context, response, outputTypeInfo)
9292
}
@@ -119,7 +119,7 @@ internal inline fun streamingResponse(crossinline handler: suspend (ByteWriteCha
119119
try {
120120
handler(channel)
121121
} catch (e: Exception) {
122-
Log.warn(e)
122+
Log.warn("Exception occurred on streaming: " + e.message)
123123

124124
channel.writeStringUtf8(e.toTrailer())
125125
}
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package io.github.trueangle.knative.lambda.runtime.log
22

3-
internal fun Throwable.prettyPrint() = buildString {
3+
internal fun Throwable.prettyPrint(includeStackTrace: Boolean = true) = buildString {
44
append("An exception occurred:\n")
55
message?.let {
66
append("Message: ${message}\n")
77
}
8-
append("Stack Trace:\n")
9-
append(stackTraceToString())
8+
if (includeStackTrace) {
9+
append("Stack Trace:\n")
10+
append(stackTraceToString())
11+
}
1012
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.github.trueangle.knative.lambda.runtime.log
2+
3+
import io.ktor.client.plugins.logging.Logger
4+
import io.ktor.client.plugins.logging.LogLevel as KtorLogLevel
5+
6+
internal class KtorLogger : Logger {
7+
override fun log(message: String) = when (getLevel()) {
8+
KtorLogLevel.ALL -> Log.trace(message)
9+
KtorLogLevel.BODY -> Log.debug(message)
10+
KtorLogLevel.INFO -> Log.info(message)
11+
else -> Unit
12+
}
13+
14+
fun getLevel() = when (Log.currentLogLevel) {
15+
LogLevel.TRACE -> KtorLogLevel.ALL
16+
LogLevel.DEBUG -> KtorLogLevel.BODY
17+
else -> KtorLogLevel.NONE
18+
}
19+
}
20+

0 commit comments

Comments
 (0)