Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何配置jetty以使用log4j?_Java_Log4j_Jetty - Fatal编程技术网

Java 如何配置jetty以使用log4j?

Java 如何配置jetty以使用log4j?,java,log4j,jetty,Java,Log4j,Jetty,如何配置jetty以使用log4j?我已经在我的应用程序中使用了log4j,而jetty将日志记录到stderr import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.

如何配置jetty以使用log4j?我已经在我的应用程序中使用了log4j,而jetty将日志记录到stderr

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

public class Test {

    static final Logger logger = Logger.getLogger(Test.class);

    public static void main(String[] args) {

        PropertyConfigurator.configure("log4j.properties");
        logger.info("Started.");

        Server server = new Server();

        Connector connector = new SelectChannelConnector();
        connector.setHost("127.0.0.1");
        connector.setPort(8080);       

        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.setContextPath("/");
        context.addServlet(new ServletHolder(new ServletHome()), "/");                       

        // disable jettys default logger
        //org.eclipse.jetty.util.log.Log.setLog(null);

        server.addConnector(connector);
        server.setHandler(context);

        logger.debug("Starting jetty.");
        try {
            server.start();
            server.join();
        } catch (Exception e) {
            logger.error("Ooops.");
        }

        logger.info("Finished.");
    }
}

码头使用。slf4j允许统一的日志API连接到任何受支持的日志框架。当然也支持log4j。您所要做的就是将slf4j API和slf4j-log4j连接器都放到类路径中。它应该会自动连接。

谢谢@musiKk。我将slf4j-api.jar slf4j-log4j.jar添加到我的类路径中,它确实是自动连接的。可能值得注意的是,当在log4j中启用调试日志记录时,jetty非常嘈杂,因此我将此添加到log4j.properties以减少噪音:
log4j.logger.org.eclipse.jetty=INFO
是的,这很常见。调试级别通常非常冗长,有时有选择地激活或停用包以获得更合理的输出是有意义的。