in management-loglevels-logback/src/main/scala/org/apache/pekko/management/loglevels/logback/LogLevelRoutes.scala [50:109]
override def routes(settings: ManagementRouteProviderSettings): Route =
pathPrefix("loglevel") {
concat(
path("logback") {
parameter("logger") {
loggerName =>
concat(
put {
if (settings.readOnly) complete(StatusCodes.Forbidden)
else {
parameter("level".as[Level]) { level =>
extractClientIP { clientIp =>
val logger = getLogger(loggerName)
if (logger != null) {
logger.info(
"Log level for [{}] set to [{}] through Pekko Management loglevel endpoint from [{}]",
loggerName,
level,
clientIp)
logger.setLevel(level)
complete(StatusCodes.OK)
} else {
complete(StatusCodes.NotFound)
}
}
}
}
},
get {
val logger = getLogger(loggerName)
if (logger != null) {
complete(logger.getEffectiveLevel.toString)
} else {
complete(StatusCodes.NotFound)
}
})
}
},
path("pekko") {
concat(
get {
complete(classicLogLevelName(system.eventStream.logLevel))
},
put {
if (settings.readOnly) complete(StatusCodes.Forbidden)
else {
parameter("level".as[ClassicLogging.LogLevel]) { level =>
extractClientIP { clientIp =>
logger.info(
"Pekko loglevel set to [{}] through Pekko Management loglevel endpoint from [{}]",
Array[Object](classicLogLevelName(level), clientIp): _*)
system.eventStream.setLogLevel(level)
complete(StatusCodes.OK)
}
}
}
})
})
}