1

これは、リフトでのlog4jの構成です。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM
        "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration threshold="trace" xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="CA" class="org.apache.log4j.FileAppender">
        <param name="File" value="sample.log"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{ISO8601}] %-8r [%t] %-5p %c %x - %m%n"/>
        </layout>
    </appender>
    <root>
        <level value="trace"/>
        <appender-ref ref="CA"/>
    </root>
</log4j:configuration>

これはBoot.scalaの関連部分です

Logger.setup = Full(Log4j.withFile(getClass.getResource("/props/default.log4j.xml")))

突堤6.22でリフトアプリを実行します。「jettyservicestart」でjettyを起動すると、jettytmp_dirフォルダー/var/cache/jetty/tmp/sample.logにログファイルが作成されます。

別の場所にログファイルを作成するように構成するにはどうすればよいですか?桟橋のログフォルダを例にとってみましょう。

4

1 に答える 1

2

FileAppender宣言でファイル名'sample.log'のみを使用するため、Jettyはログファイルを作業ディレクトリに保存します。

解決策は、絶対パスを指定するか、場合によっては変数を使用することです。例えば:

<param name="File" value="${java.io.tmpdir}/sample.log"/>

サンプル.logをOSに依存するjava.io.tmpdirに保存します。

中括弧内の値はシステムプロパティです。コマンドラインでシステムプロパティとして何でも指定し、Log4Jファイルでアクセスできます。例えば:

java -Dmyloggingdir=/var/tmp/myloggingdir

その後:

<param name="File" value="${myloggingdir}/sample.log"/>

Jettyロギングディレクトリがシステムプロパティである場合は、それにアクセスできるはずです。

于 2012-08-07T16:52:16.480 に答える