Java 如何配置jetty以使用log4j?
如何配置jetty以使用log4j?我已经在我的应用程序中使用了log4j,而jetty将日志记录到stderrJava 如何配置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.
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
是的,这很常见。调试级别通常非常冗长,有时有选择地激活或停用包以获得更合理的输出是有意义的。