in logback-classic/src/main/scala/com/twitter/server/handler/logback/classic/LoggingHandler.scala [138:236]
private def renderHtml(
renderLoggers: Seq[Logger],
julLoggers: Seq[javalog.Logger],
updateMsg: String,
showOverriddenOnly: Boolean
): String = {
s"""<h3>Logback Loggers</h3>
${renderFilterButtons(showOverriddenOnly)}
<table class="table table-striped table-condensed">
<caption>${escapeHtml(updateMsg)}</caption>
<thead>
<tr>
<th>ch.qos.logback.classic.Logger</th>
<th>ch.qos.logback.classic.Level</th>
</tr>
</thead>
${(for (logger <- renderLoggers) yield {
val loggerName =
if (logger.getName == "") org.slf4j.Logger.ROOT_LOGGER_NAME else logger.getName
val inheritsLevel = logger.getLevel == null
val filterQueryParams = if (showOverriddenOnly) {
"?overridden=true&"
} else "?"
val buttons = for (level <- levels) yield {
val isActive = logger.getEffectiveLevel == level
val activeCss =
if (!isActive) "btn-default"
else if (!inheritsLevel) "btn-primary active disabled"
else "btn-primary active"
val queryParams =
if (isActive && logger.getLevel == logger.getEffectiveLevel) ""
else {
s"""logger=${URLEncoder.encode(loggerName, "UTF-8")}&level=${level.toString}"""
}
s"""<a class="btn btn-sm $activeCss"
href="$filterQueryParams$queryParams">${level.toString}</a>"""
}
val resetButton = if (!inheritsLevel && loggerName != org.slf4j.Logger.ROOT_LOGGER_NAME) {
val queryParams = s"""logger=${URLEncoder.encode(loggerName, "UTF-8")}&level=null"""
s"""<a class="btn btn-sm btn-warning" href="$filterQueryParams$queryParams">RESET</a>"""
} else ""
s"""<tr>
<td><h5>${escapeHtml(loggerName)}</h5></td>
<td><div class="btn-group" role="group">
${buttons.mkString("\n")}
$resetButton
</div></td>
</tr>"""
}).mkString("\n")}
</table>
<h3>java.util.Logging Loggers</h3>
<table class="table table-striped table-condensed">
<thead>
<tr>
<th>java.util.logging.Logger</th>
<th>java.util.logging.Level</th>
</tr>
</thead>
${
val filterQueryParams = if (showOverriddenOnly) {
"?overridden=true&"
} else "?"
(for (logger <- julLoggers) yield {
val loggerName = getLoggerDisplayName(logger)
val buttons = (for (level <- julLevels) yield {
val isActive = getLevel(logger) == level
val activeCss =
if (!isActive) "btn-default"
else {
"btn-primary active disabled"
}
val queryParams =
if (isActive) ""
else {
s"""logger=${URLEncoder
.encode(loggerName, "UTF-8")}&level=${level.toString}&isJul=true"""
}
s"""<a class="btn btn-sm $activeCss"
href="$filterQueryParams$queryParams">${level.toString}</a>"""
}).mkString("\n")
s"""<tr>
<td><h5>${escapeHtml(loggerName)}</h5></td>
<td><div class="btn-group" role="group">
$buttons
</div></td>
</tr>"""
}).mkString("\n")
}
</table>"""
}