Wie zu verwenden SLF4J Logger in einer JSP
Ich bin in den Prozess der Migration der Protokollierung einer mittleren Anwendung, die eine benutzerdefinierte Lösung, um etwas mehr standard. Ich habe mich entschieden, auf die Verwendung von Logback und SLF4J, und ich habe erfolgreich migriert, die meisten der Java-code. Allerdings habe ich schon ein bisschen JSPs, verwenden Sie einfach System.aus für die Anmeldung. Ich habe nie arbeitete viel mit JSPs und begann zu Fragen: wie soll ich, um die ordnungsgemäße Verwendung der Protokollierung in einem JSP?
<%@page import="org.slf4j.Logger"%>
<%@page import="org.slf4j.LoggerFactory"%>
<%
Logger log = LoggerFactory.getLogger(getClass());
%>
<!-- ... -->
<%
log.info("Hello Logging!");
%>
Dies ist, was kam in den Sinn den ersten, aber es scheint in mehreren Punkten falsch:
- viel zu ausführlich, und viel Arbeit der Umbau der bestehenden JSPs
- ein Aufruf an LoggerFactory.getLogger() jedes mal, wenn die Seite gerendert wird (im Gegensatz zu einer statischen
logger
Feld in einem standard-Java-Klasse) - Ich finde, dass der name des Loggers wird auch etwas sein, was nicht wirklich einfach diese Weise
Gibt es irgendeine Art von standard oder best practice oder etwas für die Protokollierung in JSPs?
Auch, wenn ich mich Recht erinnere, es war eine Art von taglib für Log4J. Gibt es etwas ähnliches für SLF4J (oder vielleicht Logback)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie einen Blick auf slf4j-taglib.
Könnten Sie versuchen (Beachten Sie die "!")
Dann ersetzen Sie Ihr System.das mit
Boris ' Kommentar sollte wirklich berücksichtigt werden concideration obwohl, JSPs, sollten Sie nicht brauchen, Protokollierung im Allgemeinen. Ich würde nur, diese Technik zu verwenden (oder etwas ähnliches) zu ersetzen, die bestehende Anmeldung erforderlich gehalten werden.
Dann Ihre JSP-Seite könnte wie folgt Aussehen:
Verwenden logger in der jsp-Datei, initialisiert die logger-Objekt in der folgenden Weise:
Dann könnten Sie voran gehen, indem Sie mit
Ich denke, es ist schlechte Praxis, um die trigger-Protokollierung von innerhalb der gegenständlichen Schicht einer Anwendung. Generell würde ich erwarten, finden Sie die Protokollierung in der business-Logik nur eine JSP-vollgestopft mit logging-Aufruf wäre sicherlich brechen die separation of concerns Prinzip.
Als eine vorübergehende, aber dennoch eleganten workaround könnten Sie versuchen, und erstellen Sie eine benutzerdefinierte tag-lib.