如何使 log4j 与码头一起工作?

How to make log4j work with jetty?

我想用 log4j 做 jetty 服务器日志。当我使用 IDEA 部署 exploded war 时,效果很好。 IDEA 在 /tmp 目录中创建此文件 (root.xml):

<?xml version="1.0"  encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Set name="contextPath">/</Set>
    <Set name="resourceBase">/home/username/Desktop/project/ROOT/target/root</Set>
</Configure>

在我将此文件复制到 /opt/jetty/webapps 并重新启动码头服务后,它停止记录。我没有改变项目中的任何其他内容。我什至没有更改目录,一切都是一样的。

我只想在没有IDEA的情况下部署。

如何让 log4j 与 Jetty 9 服务器上手动部署的分解 war 一起工作?

当您从 IDEA 部署时,它会从特权用户运行并具有对日志的写入权限。

服务器有自己的日志文件和自己的用户。它可能没有适当的权限来写入您正在检查的日志。所以你应该检查服务器自己的日志文件。也许您会发现 FileNotFoundExceptionPermission Denied。您需要授予 Jetty 用户编辑日志文件的权限。