Log4j 如何使用码头上的电梯配置日志记录

Log4j 如何使用码头上的电梯配置日志记录,log4j,jetty,lift,Log4j,Jetty,Lift,这是电梯中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:log4

这是电梯中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>
我在jetty 6.22上运行电梯应用程序。当我用“jetty服务启动”启动jetty时, 它在jetty tmp_dir文件夹/var/cache/jetty/tmp/sample.log中创建日志文件


如何将其配置为在其他位置创建日志文件?对于exmaple,使用jetty logs文件夹。

因为在FileAppender声明中只使用文件名“sample.log”,所以jetty将日志文件存储在其工作目录中

解决方案是指定一个绝对路径,或者可能使用一个变量。例如:

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

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


如果Jetty日志目录是一个系统属性,那么您应该能够访问它。

在较旧的Jetty安装中,我发现${LOGDIR}是在init.d脚本中设置的,但是${Jetty.logs}似乎是一个更好的选择,它也可以在升级到较新版本后继续使用。
java -Dmyloggingdir=/var/tmp/myloggingdir
<param name="File" value="${myloggingdir}/sample.log"/>