0

我们的产品正在使用 Jetty 部署一个 webapp,我们在其中使用 ant 构建目标触发码头,如下所示

 <exec executable="**/jetty.sh" failonerror="true">
        <env key="JETTY_CONF" value="***/jetty.conf"/>
        <env key="JETTY_LOGS" value="${logs}"/>
        <env key="JETTY_PID" value="${logs}/jetty.pid"/>
        <env key="TMPDIR" value="${tmp.dir}"/>
        <!-- location where jetty will extract the war -->
        <env key="JAVA_OPTIONS"
             value="-server -d64 ${heapOptions} ${gcOptions} ${sslOptions} ${debugFlags} -Dsettings.path=${settings.path} -Dlog4j.configuration=file:///${xmlFile} -Djetty.secure.port=${*} -Dapp.dir=${*} -Drs.data.dir=${*} -Disutest=${isutest} -Disftest=${ftest} -Disrtest=${rtest} -Disrtestlocal=${rtestlocal} -Dlogs.dir=${logs.dir} -Ddist.dir=${*()} "/>
        <env key="JAVA" value="${JAVA_HOME}/bin/java"/>
        <arg value="${com}"/>
</exec>

在此我想知道-Dlog4j.configuration=file:///${xmlFile}是让 Jetty 配置日志还是特定于 webapp。

如果是让码头配置 log4j,我在码头看不到任何与 log4j 相关的库。因此,需要对此进行一些澄清。

4

1 回答 1

0

从 Jetty 1.0 到 9.0 Jetty 使用内部的 Logging Facade,它写入 STDERR (System.err),并具有使用 slf4j 的可选配置(​​自 Jetty 6.0 起)。

从 Jetty 10.0 开始,Jetty 使用 slf4j 日志外观(并且有自己jetty-slf4j-impl的写入 STDERR/System.err)。

Jetty 一次也没有依赖或附带 log4j。

如果您在配置中看到 log4j,那是您(或您的前辈)在 Jetty 之上添加的内容。

于 2022-02-21T11:37:28.140 回答