was ist der richtige Weg, um log4j innerhalb von jsp-Seiten
Ich meine, ich will den logger Namen entsprechend die Quelle.jsp-Datei, egal, ob es enthalten ist in einer anderen Datei oder erstellt eine Klasse oder was auch immer.
InformationsquelleAutor flybywire | 2009-10-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ist falsch mit:
Können Sie voran mit einer besseren nicht-mehrdeutige Präfix, natürlich. Tatsächlich, etwas entlang der Linien
JSPS.source.jsp
ist besser, als Sie können einrichten der Protokollierung Regeln fürJSPS
logger, die später angewandt werden, um alle sub-Logger.Nachdem dies gesagt ist, warum Sie brauchen, um sich vom JSP direkt?
In Tomcat, über-Anweisung wird die Ausgabe mit nur 'jsp' in der log-Datei, anstelle von " Quelle.jsp'. Sie müssen mindestens 'source_jsp' oder.getClass().
InformationsquelleAutor Alexander Pogrebnyak
Erstens, importieren Sie das erforderliche Paket also
dann,
den
jsppagename_jsp
ändern können, nach der server, die Sie verwenden. Und verwenden Sie dann eine beliebige Stelle innerhalb der jsp wie:Die IDE zeigt möglicherweise eine Fehlermeldung an die Erklärung der logger-Objekt. Aber, keine Sorge, die server wie tomcat wird automatisch das entsprechende servlet-Klasse von jeder jsp-Seite, die im tomcat direkt selbst.
Das funktioniert wirklich gut. Ich möchte darauf hinweisen, dass die
_jsp
Teil der name der Klasse ist unerlässlich, um das finden die Klasse. Ich Liebe es, wenn JSPs melden Sie Ihre Klasse name!InformationsquelleAutor Pavan Dave
Könnten Sie schreiben, eine factory-Methode, welche die aktuelle Anfrage als parameter, und die erhält ein Logger basiert auf dem JSP-Namen, so etwas wie dieses:
Müssen Sie möglicherweise mit ihm spielen ein bisschen, damit es funktioniert (habe ich noch nicht getestet der code oben), aber das ist der Kern von ihm.
Dies kann benutzt werden direkt von der JSP oder von einer Bohne oder tag-Klasse, die verwendet wird, durch die JSP -, solange hat er Zugriff auf das request-Objekt.
Nein, wenn Sie die Ausführung einer JSP -, dann ist die requestUri-Eigenschaft des request wird durch die URL der JSP, nicht die original-URL, die kam in den container. Denken Sie daran, die Anfrage weitergeleitet wird vom servlet auf die JSP, die die Ergebnisse in eine neue Anforderung. Es funktioniert, Vertrauen Sie mir, ich verwende diese Technik selbst.
InformationsquelleAutor skaffman
Der folgende code ist der code. Alle Konfigurations-Datei, Platzierung und Konfiguration sind die gleichen wie wie es ist Gebrauch in Servlet oder eine andere Klasse.
InformationsquelleAutor Ryan
Verwenden Sie das entsprechende ConversionPattern bei der Konfiguration log4j, e.g:
Hier, der %C-Ausgänge, die vollständig qualifizierten Klassennamen beim Aufruf der Logger-Klasse Methoden.
InformationsquelleAutor NT_
Zwar eine alte Frage, würde ich mag, um Ihnen einige Optionen. Sagen jsp filename = for_example.jsp:
1. Verwenden Sie Dateinamen direkt ein, sondern ersetzen Punkt mit Unterstrich
(Hinweis: ständig Fehler ist die Verwendung von 'for_example.jsp' direkt, es wird behandelt als Klasse name und dann, wenn AP-server, sagen Tomcat, findet keine solche Klasse Weg, es wird die Ausgabe von log-Nachricht in catalina."...(jsp) ....".
2. Request-URI
Jemand mag. Ich weiß nicht warum, aber ich habe das schon mal gesehen bei jemand die codes.
3. Klasse name
diese wird in der Regel 'for_example_jsp", außer wenn for_example.jsp ist bei einigen anderen servlet, sagen Sie 'test_servlet', es wird 'einschließlich Datei-log-name', + 'eine geordnete Reihe', z.B. test_servlet_include_005.
4. Programmatisch bekommen jsp-Datei-Namen
Dies ist jedoch nicht unbedingt Recht mit Bezug auf das, was AP-server und version Sie verwenden.
Ich persönlich verwenden Sie Methode 1, als ich denke, es ist sehr zuverlässig.
InformationsquelleAutor Scott Chu
Da ist es wahrscheinlich, dass Sie möchten, um die Ausgabe der Inhalte von jsp-el-Variablen in log4net Sie können diesen code verwenden,
InformationsquelleAutor k3b