in src/main/java/org/apache/sling/commons/log/logback/internal/SlingLogPanel.java [144:182]
private void addScriptBlock(final PrintWriter pw, final LoggerStateContext ctx) {
pw.println("<script type=\"text/javascript\" src=\"" + RES_LOC + "/slinglog.js\"></script>");
pw.println("<script type=\"text/javascript\" src=\"" + RES_LOC + "/jquery.autocomplete.min.js\"></script>");
pw.println("<script type=\"text/javascript\" src=\"" + RES_LOC + "/prettify.js\"></script>");
pw.println(
"<script type=\"text/javascript\">$(document).ready(function() { initializeSlingLogPanel(); });</script>");
pw.println("<script>");
// write all present loggers as script variable so the autocomplete script can search over them
pw.println("var loggers=[");
Set<String> loggers = new TreeSet<>();
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
for (Logger logger : loggerContext.getLoggerList()) {
loggers.add(logger.getName());
}
Set<String> packageList = new TreeSet<>();
for (String logger : loggers) {
int pos = logger.lastIndexOf(PACKAGE_SEPARATOR);
if (pos != -1) {
String pack = logger.substring(0, pos);
packageList.add(pack);
}
}
loggers.addAll(packageList);
for (Iterator<String> loggerIt = loggers.iterator(); loggerIt.hasNext(); ) {
String logger = loggerIt.next();
pw.print("'");
pw.print(XmlUtil.escapeXml(logger));
pw.print("'");
if (loggerIt.hasNext()) {
pw.print(",");
}
}
pw.println("];");
pw.println("</script>");
pw.println("<script>$(document).ready(prettyPrint);</script>");
}