Skip to content

Commit 946f9aa

Browse files
committed
WD-321 Fix default logging configuration
1 parent 897ca1c commit 946f9aa

File tree

4 files changed

+16
-21
lines changed

4 files changed

+16
-21
lines changed

sample/src/main/kotlin/com/icerockdev/sample/server.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import com.icerockdev.exception.ValidationException
1212
import com.icerockdev.util.QueryParser
1313
import com.icerockdev.util.receiveQuery
1414
import com.icerockdev.webserver.*
15-
import com.icerockdev.webserver.log.CustomLoggingConfiguration
15+
import com.icerockdev.webserver.log.LoggingConfiguration
1616
import com.icerockdev.webserver.log.JsonDataLogger
1717
import com.icerockdev.webserver.log.JsonSecret
1818
import com.icerockdev.webserver.log.jsonLogger
@@ -42,7 +42,8 @@ fun Application.main() {
4242
}
4343
install(JsonDataLogger) {
4444
mapperConfiguration = getObjectMapper()
45-
customLoggingConfiguration = CustomLoggingConfiguration(responseTypes = listOf(CustomResponse::class))
45+
loggingConfiguration =
46+
LoggingConfiguration(responseTypes = listOf(AbstractResponse::class, CustomResponse::class))
4647
}
4748
install(CallId, getCallConfiguration())
4849
install(ContentNegotiation) {

web-utils/src/main/kotlin/com/icerockdev/webserver/log/CustomLoggingConfiguration.kt

Lines changed: 0 additions & 8 deletions
This file was deleted.

web-utils/src/main/kotlin/com/icerockdev/webserver/log/JsonDataLogger.kt

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector
1616
import com.fasterxml.jackson.databind.jsontype.TypeSerializer
1717
import com.fasterxml.jackson.databind.ser.std.StdScalarSerializer
1818
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
19-
import com.icerockdev.api.AbstractResponse
20-
import com.icerockdev.api.Request
2119
import com.icerockdev.webserver.Constants
2220
import com.icerockdev.webserver.Environment
2321
import io.ktor.application.*
@@ -47,7 +45,7 @@ class JsonDataLogger(configure: Configuration.() -> Unit) {
4745
var responseStatusCodeName: String = Constants.LOG_FIELD_STATUS_CODE
4846
var appEnvName: String = Constants.LOG_FIELD_ENV
4947
var systemEnvKey: String = "env"
50-
var customLoggingConfiguration: CustomLoggingConfiguration = CustomLoggingConfiguration()
48+
var loggingConfiguration: LoggingConfiguration = LoggingConfiguration()
5149
}
5250

5351
init {
@@ -80,10 +78,7 @@ class JsonDataLogger(configure: Configuration.() -> Unit) {
8078
// response data intercept
8179
pipeline.sendPipeline.insertPhaseBefore(ApplicationSendPipeline.Render, LoggingPhase)
8280
pipeline.sendPipeline.intercept(LoggingPhase) { subject ->
83-
if (subject is AbstractResponse) {
84-
MDC.put(configuration.responseBodyName, mapper.writeValueAsString(subject))
85-
}
86-
configuration.customLoggingConfiguration.responseTypes.forEach { type ->
81+
configuration.loggingConfiguration.responseTypes.forEach { type ->
8782
if (type.isInstance(subject)) {
8883
MDC.put(configuration.responseBodyName, mapper.writeValueAsString(subject))
8984
}
@@ -94,10 +89,7 @@ class JsonDataLogger(configure: Configuration.() -> Unit) {
9489
pipeline.receivePipeline.insertPhaseBefore(ApplicationReceivePipeline.After, LoggingPhase)
9590
pipeline.receivePipeline.intercept(LoggingPhase) { request ->
9691
val requestValue = request.value
97-
if (requestValue is Request) {
98-
MDC.put(configuration.requestBodyName, mapper.writeValueAsString(requestValue))
99-
}
100-
configuration.customLoggingConfiguration.requestTypes.forEach { type ->
92+
configuration.loggingConfiguration.requestTypes.forEach { type ->
10193
if (type.isInstance(requestValue)) {
10294
MDC.put(configuration.requestBodyName, mapper.writeValueAsString(requestValue))
10395
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.icerockdev.webserver.log
2+
3+
import com.icerockdev.api.AbstractResponse
4+
import com.icerockdev.api.Request
5+
import kotlin.reflect.KClass
6+
7+
class LoggingConfiguration(
8+
val requestTypes: List<KClass<*>> = listOf(Request::class),
9+
val responseTypes: List<KClass<*>> = listOf(AbstractResponse::class)
10+
)

0 commit comments

Comments
 (0)