2009-08-21 4 views
0

In meinem Java-Servlet-Code möchte ich in der Lage sein, programmatisch in das Anschlussprotokoll zu schreiben. Ich bin mir bewusst, dass die Anlegestelle jede eingehende HTTP-Anfrage automatisch im Zugriffsprotokoll protokolliert. Allerdings muss mein Servlet gelegentlich eine eigene Zeile an das Zugriffsprotokoll anhängen. Hat hier jemand Ähnliches gemacht?Jetty: Wie schreibe ich in Zugriffsprotokolle

Danke!

Antwort

3

Ich denke Lispnik auf dem richtigen Weg ist. Sie möchten das in http://docs.codehaus.org/display/JETTY/Logging+Requests beschriebene NCSARequestLog in den Griff bekommen und Protokollnachrichten direkt an es senden, indem Sie log() aufrufen. Sie möchten also den Platz in Ihrem Code finden, der gerade NCSARequestLog konfiguriert, und eine modifizierte Version des Codes ersetzen, die den Zeiger auf das erstellte Protokoll zurückgibt.

2

Wenn jemand hier auf der Suche nach der gleichen Sache stolpert, ist es noch eine andere Sache, die Anlegesteg leicht macht, aber die Dokumentation ist schlecht für. Wie auch immer, für Jetty 9 fügen Sie einfach jetty-requestlog.xml hinzu, das ist eine Datei in $JETTY_HOME/etc/ zu $JETTY_HOME/etc/jetty.conf, um ein grundlegendes Anforderungsprotokoll zu erhalten. Sie müssen den Server neu starten, damit die Konfiguration wirksam wird.

1

Durch die Art und Weise, eine andere Art und Weise das gleiche in Landungssteg 9 zu erreichen, ist es, die drei Zeilen folgenden (von here) im "Handlers" Abschnitt in $JETTY_HOME/etc/jetty.xml hinzuzufügen:

<Item> 
    <New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/> 
</Item> 

und die am Ende Abschnitt des "Handlers", fügen Sie den folgenden Code ein:

<Ref id="RequestLog"> 
    <Set name="requestLog"> 
    <New id="RequestLogImpl" class="org.eclipse.jetty.NCSARequestLog"> 
    <Arg><SystemProperty name="jetty.logs" default="./logs"/>/yyyy_mm_dd.request.log</Arg> 
     <Set name="retainDays">90</Set> 
     <Set name="append">true</Set> 
     <Set name="extended">false</Set> 
     <Set name="LogTimeZone">GMT</Set> 
    </New> 
    </Set> 
</Ref> 

das heißt, machen diese Abschnitte aussehen wie der Abschnitt „Konfigurieren der Anforderungsprotokolle für einen Jetty Server“ in diesem page.