in src/main/java/org/apache/sling/commons/log/logback/internal/SlingLogPanel.java [183:266]
private void appendOsgiConfiguredLoggerData(final PrintWriter pw, final String consoleAppRoot) {
pw.println("<div class='table'>");
pw.println("<div class='ui-widget-header ui-corner-top buttonGroup'>Logger (Configured via OSGi Config)</div>");
pw.println("<form method='POST'><table id=\"loggerConfig\" class='tablesorter nicetable ui-widget'>");
pw.println("<thead class='ui-widget-header'>");
pw.println("<tr>");
pw.println("<th>Log Level</th>");
pw.println("<th>Additive</th>");
pw.println("<th>Log File</th>");
pw.println("<th>Logger</th>");
pw.print("<th width=\"20%\">");
pw.print(getConfigColTitle(consoleAppRoot)); // no need to escape
pw.println("</th>");
pw.println("</tr>");
pw.println("</thead>");
pw.println("<tbody class='ui-widget-content'>");
final LogConfigManager configManager = logbackManager.getLogConfigManager();
final String rootPath = logbackManager.getRootDir();
final boolean shortenPaths = areAllLogfilesInSameFolder(configManager.getLogConfigs(), rootPath);
for (final LogConfig logConfig : configManager.getLogConfigs()) {
pw.print("<tr id=\"");
pw.print( XmlUtil.escapeXml(logConfig.getConfigPid()) );
pw.println("\">");
pw.print("<td><span class=\"logLevels\" data-currentloglevel=\"");
pw.print(getLevelStr(logConfig));
pw.print("\">");
pw.print(getLevelStr(logConfig));
pw.println("</span></td>");
pw.print("<td><span class=\"logAdditive\" data-currentAdditivity=\"");
pw.print(Boolean.toString(logConfig.isAdditive()));
pw.print("\">");
pw.print(Boolean.toString(logConfig.isAdditive()));
pw.println("</span></td>");
pw.print("<td><span class=\"logFile\">");
pw.print( XmlUtil.escapeXml(getPath(logConfig.getLogWriterName(), rootPath, shortenPaths)));
pw.println("</span></td>");
pw.println("<td><span class=\"loggers\">");
String sep = "";
for (final String cat : logConfig.getCategories()) {
pw.print(sep);
pw.print("<span class=\"logger\">");
pw.print( XmlUtil.escapeXml(cat));
pw.println("</span>");
sep = "<br />";
}
pw.println("</td>");
final String pid = logConfig.getConfigPid();
String url = createUrl(consoleAppRoot, "configMgr", pid, true);
if (logConfig.getCategories().contains(Logger.ROOT_LOGGER_NAME)) {
url = createUrl(consoleAppRoot, "configMgr", pid, false);
}
pw.print("<td>");
pw.print(url);
pw.println("</td>");
pw.println("</tr>");
}
pw.println("</tbody><tfoot>");
pw.println("<tr id=\"newlogger\">");
pw.println("<td><span id=\"allLogLevels\" class=\"logLevels\" data-loglevels=\"");
String sep = "";
for (final String levelName : LEVEL_NAMES) {
pw.print(sep);
pw.print(XmlUtil.escapeXml(levelName));
sep = ",";
}
pw.println("\"></span></td>");
pw.print("<td><span class=\"logAdditive\" data-currentAdditivity=\"false\"></span></td>");
pw.print("<td><span id=\"defaultLogfile\" data-defaultlogfile=\"");
pw.print( XmlUtil.escapeXml(getPath(configManager.getDefaultWriter().getFileName(), rootPath, shortenPaths)));
pw.println("\" class=\"logFile\"></span></td>");
pw.println("<td><span class=\"loggers\"></span></td>");
pw.println("<td><input type='submit' class=\"configureLink\" value='Add new Logger' /></td></tr></tfoot>");
pw.println("</table></form>");
pw.println("</div>");
}