2013-03-18 13 views
7

Günlükleri bir dış dosyaya yerleştirmek için iskelet nasıl yapılandırılır? Slf4j dosyasını lib dizinine koymam gerektiğiniGünlükleri bir dış dosyaya yerleştirmek için iskelet nasıl yapılandırılır

. Yaptıklarımı

oldu:

  • indirme slf4j ve $ JETTY_HOME $/lib içine slf4j-log4j12-1.7.3.jar koydu.
  • log4j dosyasını indirin ve log4j-1.2.17.jar dosyasını $ JETTY_HOME $/lib yerine koyun
  • Bir log4j yapılandırma dosyası oluşturun. o aşağıdan kullanılabilir:

<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> 
  • yorumladı hat

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

Yukarıda açıklanandan herşeyi yaptım rağmen içinde, ben görmek mümkün değilim hedef yerlerdeki tüm günlükler. Tüm günlük girişleri

cevap

10

Güncelleme Talimatları (2016 Haziran) İskele 9 + için

, bir bölünme ${jetty.home} ve ${jetty.base} dizini kullanarak olacak konsoldan hala mevcuttur.

Not: ${jetty.home} içerisindeki herhangi bir içeriği düzenlemeyin/değiştir/sil/kaldır/kaldır. Tüm yapılandırmanız bundan sonra ${jetty.base}'da bulunacaktır. Komut satırı olarak

Talimatlar:

$ 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 

Not: Bu İskelesi'nın StdErrLog uygulanması için mutlaka olduğu gibi logging modülü izin yok. Bu logging modülü, herhangi bir System.err ve System.out yakalayacak ve bir günlük kayıt dosyasına yönlendirecektir. Bu yakalama ve yönlendirme, log4j ConsoleAppender ile doğrudan çakışacaktır!

Orijinal Talimatlar - Sadece İskelesi 8 (şimdi EOL) üzerinde geçerli ve eski

aşağıdaki adımları izleyin:

  1. $JETTY_HOME/lib yılında bir günlük dizini oluşturun: $JETTY_HOME/lib/logging (bu sadece en iyi yöntem)
  2. log4j, slf4j-log4j ve slf4j-api'u şu dizine koyun: örn.: örn: OPTIONS=Server,websocket,resources,ext,jsp,jdbc,logging
  3. yer senin log4j.properties
  4. dizin $JETTY_HOME/resources başlangıç ​​dalgakıran
log4j-1.2.16.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar
  • sizin $JETTY_HOME/start.iniOPTIONS satırına "logging" ekleyerek İskelesi'nın sınıf yolunda yeni bir dizin olduğundan emin olun

    Eğer log4j.properties'iniz doğru şekilde ayarlanmışsa, bu sizin için çalışmalıdır. Belgelere adım adım rehberlik etmem gerektiğine dikkat edeceğim.

  • +3

    Eğer Jetty 9 kullanıyorsanız, 1 adım daha vardır. Bu 1 satıra sahip olmak için $ JETTY_HOME/resources/jetty-logging.properties'den çıkın ... 'org.eclipse.jetty.util.log.class = org.eclipse.jetty.util.log.Slf4jLog' –

    +4

    Bunun için belgeler güncellendi ... [Örnek: Apache Log4j ile giriş] (http://www.eclipse.org/jetty/documentation/current/example-logging-log4j.html) –

    +0

    Jetty9 kullanıyorum, adımlarınızı takip ettim, ancak ** java.lang.ClassNotFoundException: org.slf4j.LoggerFactory ** istisnası. – Tom

    İlgili konular