2013-03-18 12 views
7

Jak skonfigurować pomost, aby umieścić jego dzienniki w pliku zewnętrznym?Jak skonfigurować pomost do umieszczania dzienników w pliku zewnętrznym?

Manual says że muszę umieścić slf4j w katalogu lib.

Co zrobiłem było:

  • pobieranie slf4j i umieścić slf4j-log4j12-1.7.3.jar do $ JETTY_HOME $/lib.
  • pobierz log4j i wstaw log4j-1.2.17.jar do $ JETTY_HOME $/lib
  • utwórz plik konfiguracyjny log4j. jest ona dostępna od dołu:

<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender"> 
    <param name="Threshold" value="DEBUG" />  
    <param name="File" value="c:/app/jetty/logs/server.log" /> 
    <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p [%c{1}] %m %n" /> 
    </layout> 
</appender> 
<root> 
    <priority value="debug" /> 
    <appender-ref ref="fileAppender" /> 
</root> 
  • skomentował linia

    "#org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog" w $JETTY_HOME$/resources/jetty-logging.properties

Mimo, że zrobił wszystko, co opisano powyżej, nie jestem w stanie zobaczyć wszelkie dzienniki w docelowych miejscach docelowych. Wszystkie wpisy dziennika są nadal dostępne z poziomu konsoli

Odpowiedz

10

Zaktualizowane instrukcje (czerwiec 2016)

Na Jetty 9+, będziesz stosując podział ${jetty.home} i ${jetty.base} katalog.

Uwaga: nie wolno edytować/modyfikować/usuwać/dodawać/usuwać żadnych treści w ${jetty.home}. Cała twoja konfiguracja będzie od teraz rezydować w ${jetty.base}.

Instrukcje jak wierszu poleceń:

$ mkdir /path/to/mybase 
$ cd /path/to/mybase 

# Prepare a basic jetty.base directory 
$ java -jar /path/to/jetty-dist/start.jar --add-to-start=http,deploy,resources,ext 
INFO: ext    initialised in ${jetty.base}/start.ini 
INFO: resources  initialised in ${jetty.base}/start.ini 
INFO: server   initialised (transitively) in ${jetty.base}/start.ini 
INFO: http   initialised in ${jetty.base}/start.ini 
INFO: deploy   initialised in ${jetty.base}/start.ini 
MKDIR: ${jetty.base}/lib 
MKDIR: ${jetty.base}/lib/ext 
MKDIR: ${jetty.base}/resources 
MKDIR: ${jetty.base}/webapps 
INFO: Base directory was modified 

# Download the required jar files 
$ cd /path/to/mybase/lib/ext 
$ curl -O http://central.maven.org/maven2/org/slf4j/slf4j-api/1.7.21/slf4j-api-1.7.21.jar 
$ curl -O http://central.maven.org/maven2/org/slf4j/slf4j-log4j12/1.7.21/slf4j-log4j12-1.7.21.jar 
$ curl -O http://central.maven.org/maven2/log4j/log4j/1.2.17/log4j-1.2.17.jar 

# Prepare the Jetty side logging to use slf4j 
$ cd /path/to/mybase/resources 
$ echo "org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog" > jetty-logging.properties 

# Grab a copy of a log4j.xml to initialize things 
$ cd /path/to/mybase/resources 
$ curl -o log4j.xml https://gist.githubusercontent.com/joakime/13e31db59b83079be3fdc1a877de7060/raw/5c275a2a2f29445d6cdde7fcae3820da99e7234b/log4j.xml 

# Start Jetty 
$ cd /path/to/mybase 
$ java -jar /path/to/jetty-dist/start.jar 

UWAGA: Nie należy włączyć moduł logging jako że jest wyłącznie dla StdErrLog realizacji molo za. Ten moduł logging przechwyci wszystkie System.err i System.out i przekieruje je do ruchomego pliku dziennika. To przechwycenie i przekierowanie będzie w bezpośrednim konflikcie z twoim log4j ConsoleAppender!

Oryginalna instrukcja - ważna tylko na Jetty 8 (teraz EOL) i starszych

Wykonaj następujące kroki:

  1. utworzyć katalog rejestrowania w $JETTY_HOME/lib: $JETTY_HOME/lib/logging (jest to po prostu najlepsza praktyka)
  2. wstaw log4j, slf4j-log4j i slf4j-api w tym katalogu: np.: log4j-1.2.16.jarslf4j-api-1.6.1.jarslf4j-log4j12-1.6.1.jar
  3. upewnij się, że ten nowy katalog w ścieżce klasy pomost dodając "logging" w $JETTY_HOME/start.iniOPTIONS linii: np OPTIONS=Server,websocket,resources,ext,jsp,jdbc,logging
  4. Skieruj log4j.properties w $JETTY_HOME/resources katalog
  5. początek molo

Jeśli plik log4j.properties jest poprawnie skonfigurowany, powinien działać. Zajmę się tym krok po kroku w dokumentacji.

+3

Jeśli korzystasz z Jetty 9, masz jeszcze 1 krok. Wyjdź z katalogu $ JETTY_HOME/resources/jetty-logging.properties, aby mieć 1 linię ... 'org.eclipse.jetty.util.log.class = org.eclipse.jetty.util.log.Slf4jLog' –

+4

Dokumentacja do tego ma został zaktualizowany ... [Przykład: Logowanie za pomocą Apache Log4j] (http://www.eclipse.org/jetty/documentation/current/example-logging-log4j.html) –

+0

Używam Jetty9, wykonałem Twoje kroki, ale otrzymałem ** wyjątek java.lang.ClassNotFoundException: org.slf4j.LoggerFactory **. – Tom

Powiązane problemy