Feature/graphql logging (#674)

* Set graphql logs to error level

Set log level for loggers with names
 - ExecutionStrategy (spams logs with "... completing field ...")
 - notprivacysafe (logs every received request up to 4 times (received, parse, validate, execute))

* Extract logic to get logger for name into function

* Add function to set log level for a logger

* Add settings to enable graphql debug logging
This commit is contained in:
schroda
2023-09-04 00:10:43 +02:00
committed by GitHub
parent 1c9a139006
commit 56deea9fb3
6 changed files with 38 additions and 13 deletions

View File

@@ -79,7 +79,7 @@ open class ConfigManager {
// set log level early
if (debugLogsEnabled(config)) {
setLogLevel(Level.DEBUG)
setLogLevelFor(BASE_LOGGER_NAME, Level.DEBUG)
}
return config

View File

@@ -55,6 +55,11 @@ private fun getBaseLogger(): ch.qos.logback.classic.Logger {
return (KotlinLogging.logger(Logger.ROOT_LOGGER_NAME).underlyingLogger as ch.qos.logback.classic.Logger)
}
private fun getLogger(name: String): ch.qos.logback.classic.Logger {
val context = LoggerFactory.getILoggerFactory() as LoggerContext
return context.getLogger(name)
}
fun initLoggerConfig(appRootPath: String) {
val context = LoggerFactory.getILoggerFactory() as LoggerContext
val logger = getBaseLogger()
@@ -62,11 +67,19 @@ fun initLoggerConfig(appRootPath: String) {
logger.addAppender(createRollingFileAppender(context, "$appRootPath/logs"))
// set "kotlin exposed" log level
context.getLogger("Exposed").level = Level.ERROR
setLogLevelFor("Exposed", Level.ERROR)
}
fun setLogLevel(level: Level) {
getBaseLogger().level = level
const val BASE_LOGGER_NAME = "_BaseLogger"
fun setLogLevelFor(name: String, level: Level) {
val logger = if (name == BASE_LOGGER_NAME) {
getBaseLogger()
} else {
getLogger(name)
}
logger.level = level
}
fun debugLogsEnabled(config: Config) =