private def respond()

in logback-classic/src/main/scala/com/twitter/server/handler/logback/classic/LoggingHandler.scala [80:136]


  private def respond(request: Request): Future[Response] = {
    try {
      val toSetLoggerOption = Option(request.getParam("logger"))
      val message = toSetLoggerOption match {
        case Some(loggerString) =>
          try {
            val toSetLevel = request.getParam("level")
            val isJul = request.getBooleanParam("isJul", false)
            if (toSetLevel == null || toSetLevel.isEmpty) {
              throw new IllegalArgumentException(
                s"Unable to set log level for $loggerString -- undefined logging level!"
              )
            } else if (toSetLevel == "null") {
              val logger = LoggerFactory.getLogger(loggerString).asInstanceOf[Logger]
              logger.setLevel(null)
              val message = s"Removed level override for ${logger.getName}"
              info(message)
              escapeHtml(message)
            } else {
              val message = if (!isJul) {
                val logger = LoggerFactory.getLogger(loggerString).asInstanceOf[Logger]
                logger.setLevel(Level.valueOf(toSetLevel))
                s"""Changed ${logger.getName} to Level.$toSetLevel"""
              } else {
                val julLogger = julLogManager.getLogger(loggerString)
                julLogger.setLevel(javalog.Level.parse(toSetLevel))
                s"""Changed ${julLogger.getName} to Level.$toSetLevel"""
              }

              info(message)
              escapeHtml(message)
            }
          } catch {
            case e: Exception =>
              warn(e.getMessage)
              escapeHtml(e.getMessage)
          }
        case _ => ""
      }

      val showOverriddenOnly = request.getBooleanParam("overridden", false)
      val filteredLoggers = if (showOverriddenOnly) {
        loggers
          .filter(_.getLevel != null)
          .filter(_.getName != org.slf4j.Logger.ROOT_LOGGER_NAME)
      } else loggers
      val html = renderHtml(filteredLoggers.toSeq, julLoggers, message, showOverriddenOnly)

      newResponse(
        contentType = "text/html;charset=UTF-8",
        content = Buf.Utf8(html)
      )
    } catch {
      case e: Throwable =>
        newResponse(contentType = "text/html;charset=UTF-8", content = Buf.Utf8(e.getMessage))
    }
  }