0

我们想让码头使用 log4j 配置进行日志记录。我根据本教程在 spring 中使用嵌入式码头。我按照此文档在类路径中包含所有必需的 slf4j 和 log4j 依赖项。

基本上,我使用以下配置将 jetty-logging.properties 添加到类路径中。

org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4Log
org.eclipse.jetty.LEVEL=INFO

我在类路径中也有 log4j.properties

我有以下 Maven 依赖项以包含所需的 jar。

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.log4j.version}</version>
    </dependency>

            <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-server</artifactId>
        <version>${jetty.maven.version}</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlet</artifactId>
        <version>8.1.9.v20130131</version>
    </dependency>

但是当我通过 spring 启动码头服务器时,日志输出总是记录到 StdErr 并且它没有记录到我在 log4j.properties 中配置的日志文件。我错过了什么吗?是否有任何调试可以打开以进行故障排除..?我怎样才能让它工作?

4

2 回答 2

1

虽然这个问题的答案确实帮助我找到了答案,但我花了更多的时间去挖掘。

我将 Spring MVC 与 log4j 一起使用。以下

public class LaunchServer {

   private static final int SERVER_PORT = 8008;

   public static void main(String[] args) throws Exception {
      //Make sure you set the log before you start the server
      Log.setLog(new Slf4jLog());

      Server server = new Server();

      ServerConnector connector = new ServerConnector(server);
      connector.setPort(SERVER_PORT);
      server.addConnector(connector);

      WebAppContext wac = new WebAppContext();
      wac.setWar("war");
      wac.setContextPath("/");
      wac.setMaxFormContentSize(5242880);
      wac.setMaxFormKeys(100000);
      wac.setClassLoader(Thread.currentThread().getContextClassLoader());
      server.setHandler(wac);
      server.setStopAtShutdown(true);
      server.start();
   }
}

在我放的 log4j2.xml 文件<Loggers>

<Logger name="org.eclipse.jetty" level="debug" />

它对我来说效果很好,并且避免了将所有内容记录到 StdErr

于 2016-01-06T16:30:34.057 回答
0

我通过码头邮件列表得到了这个答案。

于 2013-11-05T19:09:45.530 回答