override def routes()

in management-loglevels-log4j2/src/main/scala/org/apache/pekko/management/loglevels/log4j2/LogLevelRoutes.scala [48:103]


  override def routes(settings: ManagementRouteProviderSettings): Route = {
    pathPrefix("loglevel") {
      extractClientIP { clientIp =>
        path("log4j2") {
          pathEndOrSingleSlash {
            put {
              parameters(
                "level".as[Level].withDefault(Level.INFO),
                "logger" ? LogManager.ROOT_LOGGER_NAME) { (level, logger) =>
                if (settings.readOnly) {
                  complete(StatusCodes.Forbidden)
                } else {
                  log.info(
                    s"Log level for [${if (logger.equals(LogManager.ROOT_LOGGER_NAME)) "Root"
                      else logger}] set to [$level] through Pekko Management loglevel endpoint from [$clientIp]")
                  val context = LogManager.getContext(false).asInstanceOf[LoggerContext]
                  val config = context.getConfiguration
                  val loggerConfig = config.getLoggerConfig(logger)
                  loggerConfig.setLevel(level)
                  context.updateLoggers()
                  complete(StatusCodes.OK)
                }
              }
            } ~
            get {
              parameters(
                "logger" ? LogManager.ROOT_LOGGER_NAME) { logger =>
                val context = LogManager.getContext(false).asInstanceOf[LoggerContext]
                val config = context.getConfiguration
                val loggerConfig = config.getLoggerConfig(logger)

                complete(loggerConfig.getLevel.toString)
              }
            }
          }
        } ~
        path("pekko") {
          get {
            complete(classicLogLevelName(system.eventStream.logLevel))
          } ~
          put {
            if (settings.readOnly)
              complete(StatusCodes.Forbidden)
            else {
              parameter("level".as[ClassicLogging.LogLevel]) { level =>
                log.info(
                  "Pekko loglevel set to [{}] through Pekko Management loglevel endpoint from [{}]",
                  Array[Object](classicLogLevelName(level), clientIp): _*)
                system.eventStream.setLogLevel(level)
                complete(StatusCodes.OK)
              }
            }
          }
        }
      }
    }