ktorio / ktor

Framework for quickly creating connected applications in Kotlin with minimal effort
https://ktor.io
Apache License 2.0
13.06k stars 1.07k forks source link

Bad request are logged on the default level #1465

Open ghost opened 4 years ago

ghost commented 4 years ago

Hi! I have a question regarding call logging in Ktor (1.2.4). When a request comes with 'bad' json, i.e. some fields are missing and deserializaition fails, then with CallLogging feature the bad request message is logged to the default level setup in CallLogging feature configuration. So if I have a default level INFO then I'll see something like this in logs

{
   "level": "INFO",
   "logger":"Application",
   "message":"400 Bad Request: POST - <routing_path>"
}

Is there a way to change the logging level of the failing request?

Even if I do something like this in the CallLogging configuration, the log level is still a default one, i.e. INFO in my case

filter { call ->
   val status = call.response.status()?.value
   level = Level.WARN
   status !in (200..399)
}
oleg-larshin commented 4 years ago

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.