【发布时间】:2017-03-17 00:57:47
【问题描述】:
我正在使用 JAX-RS 和嵌入式 Jetty 创建一些 REST API。我通过在 Server.java 文件中添加 LogRequestHandler 来启用服务器日志记录。
问题是为什么码头为每个请求写 200 0:0:0:0:0:0:0:1 - - [03/Nov/2016:16:59:57 +0500] "GET /app/check HTTP/1.1" 200 - 4
虽然检查端点未实现但应用程序中不存在。
源代码:
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
//context.setContextPath("/");
ResourceConfig config = new ResourceConfig();
config.packages("server");
ServletHolder servlet = new ServletHolder(new ServletContainer(config));
context.addServlet(servlet,"/*");
NCSARequestLog requestLog = new NCSARequestLog("/var/logs/jetty/log-yyyy_mm_dd.request.log");
requestLog.setAppend(true);
requestLog.setExtended(false);
requestLog.setLogTimeZone("GMT+5");
requestLog.setLogLatency(true);
requestLog.setRetainDays(90);
RequestLogHandler requestLogHandler = new RequestLogHandler();
requestLogHandler.setRequestLog(requestLog);
HandlerList topLevelHandlers = new HandlerList();
topLevelHandlers.addHandler(context);
topLevelHandlers.addHandler(requestLogHandler);
try {
jettyServer.setHandler(topLevelHandlers);
jettyServer.dumpStdErr();
jettyServer.start();
}
【问题讨论】:
-
发布您如何将 RequestHandler 添加到您的应用程序。它在处理程序树中的位置很重要。
-
RequestLogHandler requestLogHandler = new RequestLogHandler(); requestLogHandler.setRequestLog(requestLog); ServletContextHandler 上下文 = 新的 ServletContextHandler(ServletContextHandler.SESSIONS); context.addServlet(servlet, "/*"); server.addHandler()
-
请编辑您的问题并添加代码,使其更易于阅读/搜索。
-
已编辑。请注意,它为每个请求记录 200 个。
标签: jetty jersey-2.0