override def routes()

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)
                  }
                }
              }
            })
        })
    }