8

ログを外部ファイルに入れるように jetty を設定するにはどうすればよいですか?

マニュアルには、slf4j を lib ディレクトリに配置する必要があると書かれています。

私がしたことは:

  • slf4j をダウンロードし、slf4j-log4j12-1.7.3.jar を $JETTY_HOME$/lib に配置します。
  • log4j をダウンロードし、log4j-1.2.17.jar を $JETTY_HOME$/lib に配置します。
  • log4j 構成ファイルを作成します。以下から入手できます。

<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> 
  • コメント行

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

上記のすべてを実行しましたが、ターゲットの宛先にログが表示されません。すべてのログエントリは引き続きコンソールから利用できます

4

1 に答える 1

12

手順の更新 (2016 年 6 月)

Jetty 9 以降では、分割${jetty.home}${jetty.base}ディレクトリを使用します。

注: のコンテンツを編集/変更/削除/追加/削除しないで${jetty.home}ください。これからはすべての構成が存在します${jetty.base}

コマンドラインとしての指示:

$ 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

logging注: これは厳密に Jetty のStdErrLog実装のためのものであるため、モジュールを有効にしないでください。そのloggingモジュールはすべてをキャプチャしSystem.errSystem.outそれをローリング ログ ファイルにリダイレクトします。このキャプチャとリダイレクトは、log4j と直接競合しますConsoleAppender

元の手順 - Jetty 8 (現在は EOL) 以前でのみ有効

次の手順を実行します:

  1. :にログ ディレクトリを作成し$JETTY_HOME/libます$JETTY_HOME/lib/logging(これはベスト プラクティスです) 。
  2. put log4jslf4j-log4jおよびslf4j-apiそのディレクトリに:例:log4j-1.2.16.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar
  3. 行に " logging" を追加して、jetty のクラスパスにその新しいディレクトリがあることを確認してください。$JETTY_HOME/start.ini OPTIONSOPTIONS=Server,websocket,resources,ext,jsp,jdbc,logging
  4. ディレクトリに配置log4j.propertiesします$JETTY_HOME/resources
  5. 桟橋を開始

log4j.properties が適切に設定されていれば、これでうまくいくはずです。ドキュメントにそのようなステップバイステップガイドがあるように注意します。

于 2013-03-18T12:50:56.170 に答える