parent
bcd4e5fc45
commit
9eb2cb4c0f
|
@ -98,10 +98,13 @@ public abstract class AbstractNCSARequestLog extends AbstractLifeCycle implement
|
||||||
* int, long)
|
* int, long)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void log(Request request, int status, long written)
|
public void log(Request request, Response response)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
int status = response.getCommittedMetaData().getStatus();
|
||||||
|
long written = response.getHttpChannel().getBytesWritten();
|
||||||
|
|
||||||
if (_ignorePathMap != null && _ignorePathMap.getMatch(request.getRequestURI()) != null)
|
if (_ignorePathMap != null && _ignorePathMap.getMatch(request.getRequestURI()) != null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -110,6 +110,11 @@ public class HttpChannel implements Runnable, HttpOutput.Interceptor
|
||||||
return _state;
|
return _state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getBytesWritten()
|
||||||
|
{
|
||||||
|
return _written;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the number of requests handled by this connection
|
* @return the number of requests handled by this connection
|
||||||
*/
|
*/
|
||||||
|
@ -138,7 +143,7 @@ public class HttpChannel implements Runnable, HttpOutput.Interceptor
|
||||||
_requestLog = requestLog;
|
_requestLog = requestLog;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MetaData.Response getCommittedInfo()
|
public MetaData.Response getCommittedMetaData()
|
||||||
{
|
{
|
||||||
return _committedMetaData;
|
return _committedMetaData;
|
||||||
}
|
}
|
||||||
|
@ -522,7 +527,8 @@ public class HttpChannel implements Runnable, HttpOutput.Interceptor
|
||||||
public void onCompleted()
|
public void onCompleted()
|
||||||
{
|
{
|
||||||
if (_requestLog!=null )
|
if (_requestLog!=null )
|
||||||
_requestLog.log(_request, _committedMetaData == null ? -1 : _committedMetaData.getStatus(), _written);
|
_requestLog.log(_request, _response);
|
||||||
|
|
||||||
_transport.onCompleted();
|
_transport.onCompleted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ import org.eclipse.jetty.util.annotation.ManagedObject;
|
||||||
* formats.
|
* formats.
|
||||||
*/
|
*/
|
||||||
@ManagedObject("NCSA standard format request log")
|
@ManagedObject("NCSA standard format request log")
|
||||||
public class NCSARequestLog extends AbstractNCSARequestLog implements RequestLog
|
public class NCSARequestLog extends AbstractNCSARequestLog
|
||||||
{
|
{
|
||||||
private String _filename;
|
private String _filename;
|
||||||
private boolean _append;
|
private boolean _append;
|
||||||
|
|
|
@ -28,5 +28,14 @@ import org.eclipse.jetty.server.handler.RequestLogHandler;
|
||||||
*/
|
*/
|
||||||
public interface RequestLog
|
public interface RequestLog
|
||||||
{
|
{
|
||||||
public void log(Request request, int status, long written);
|
/* ------------------------------------------------------------ */
|
||||||
|
/**
|
||||||
|
* @param request The request to log.
|
||||||
|
* @param response The response to log. Note that for some requests
|
||||||
|
* the response instance may not have been fully populated (Eg 400 bad request
|
||||||
|
* responses are sent without a servlet response object). Thus for basic
|
||||||
|
* log information it is best to consult {@link Response#getCommittedMetaData()}
|
||||||
|
* and {@link Response#getHttpChannel()} directly.
|
||||||
|
*/
|
||||||
|
public void log(Request request, Response response);
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,7 @@ public class Response implements HttpServletResponse
|
||||||
_out = out;
|
_out = out;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected HttpChannel getHttpChannel()
|
public HttpChannel getHttpChannel()
|
||||||
{
|
{
|
||||||
return _channel;
|
return _channel;
|
||||||
}
|
}
|
||||||
|
@ -829,7 +829,7 @@ public class Response implements HttpServletResponse
|
||||||
_contentLength = value;
|
_contentLength = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setStatus(int sc)
|
public void setStatus(int sc)
|
||||||
{
|
{
|
||||||
|
@ -1235,6 +1235,22 @@ public class Response implements HttpServletResponse
|
||||||
{
|
{
|
||||||
return new MetaData.Response(_channel.getRequest().getHttpVersion(), getStatus(), getReason(), _fields, getLongContentLength());
|
return new MetaData.Response(_channel.getRequest().getHttpVersion(), getStatus(), getReason(), _fields, getLongContentLength());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Get the MetaData.Response committed for this response.
|
||||||
|
* This may differ from the meta data in this response for
|
||||||
|
* exceptional responses (eg 4xx and 5xx responses generated
|
||||||
|
* by the container) and the committedMetaData should be used
|
||||||
|
* for logging purposes.
|
||||||
|
* @return The committed MetaData or a {@link #newResponseMetaData()}
|
||||||
|
* if not yet committed.
|
||||||
|
*/
|
||||||
|
public MetaData.Response getCommittedMetaData()
|
||||||
|
{
|
||||||
|
MetaData.Response meta = _channel.getCommittedMetaData();
|
||||||
|
if (meta==null)
|
||||||
|
return newResponseMetaData();
|
||||||
|
return meta;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isCommitted()
|
public boolean isCommitted()
|
||||||
|
|
|
@ -27,7 +27,7 @@ import org.eclipse.jetty.util.log.Slf4jLog;
|
||||||
* Implementation of NCSARequestLog where output is sent as a SLF4J INFO Log message on the named logger "org.eclipse.jetty.server.RequestLog"
|
* Implementation of NCSARequestLog where output is sent as a SLF4J INFO Log message on the named logger "org.eclipse.jetty.server.RequestLog"
|
||||||
*/
|
*/
|
||||||
@ManagedObject("NCSA standard format request log to slf4j bridge")
|
@ManagedObject("NCSA standard format request log to slf4j bridge")
|
||||||
public class Slf4jRequestLog extends AbstractNCSARequestLog implements RequestLog
|
public class Slf4jRequestLog extends AbstractNCSARequestLog
|
||||||
{
|
{
|
||||||
private Slf4jLog logger;
|
private Slf4jLog logger;
|
||||||
private String loggerName;
|
private String loggerName;
|
||||||
|
|
|
@ -43,6 +43,7 @@ import javax.servlet.http.HttpServletResponse;
|
||||||
import org.eclipse.jetty.server.Connector;
|
import org.eclipse.jetty.server.Connector;
|
||||||
import org.eclipse.jetty.server.Request;
|
import org.eclipse.jetty.server.Request;
|
||||||
import org.eclipse.jetty.server.RequestLog;
|
import org.eclipse.jetty.server.RequestLog;
|
||||||
|
import org.eclipse.jetty.server.Response;
|
||||||
import org.eclipse.jetty.server.Server;
|
import org.eclipse.jetty.server.Server;
|
||||||
import org.eclipse.jetty.server.ServerConnector;
|
import org.eclipse.jetty.server.ServerConnector;
|
||||||
import org.eclipse.jetty.util.IO;
|
import org.eclipse.jetty.util.IO;
|
||||||
|
@ -71,8 +72,9 @@ public class BadRequestLogHandlerTest
|
||||||
public List<String> captured = new ArrayList<>();
|
public List<String> captured = new ArrayList<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void log(Request request, int status, long written)
|
public void log(Request request, Response response)
|
||||||
{
|
{
|
||||||
|
int status = response.getCommittedMetaData().getStatus();
|
||||||
captured.add(String.format("%s %s %s %03d",request.getMethod(),request.getHttpURI(),request.getProtocol(),status));
|
captured.add(String.format("%s %s %s %03d",request.getMethod(),request.getHttpURI(),request.getProtocol(),status));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,8 +77,9 @@ public class RequestLogHandlerTest
|
||||||
public List<String> captured = new ArrayList<>();
|
public List<String> captured = new ArrayList<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void log(Request request, int status, long written)
|
public void log(Request request, Response response)
|
||||||
{
|
{
|
||||||
|
int status = response.getCommittedMetaData().getStatus();
|
||||||
captured.add(String.format("%s %s %s %03d",request.getMethod(),request.getRequestURI(),request.getProtocol(),status));
|
captured.add(String.format("%s %s %s %03d",request.getMethod(),request.getRequestURI(),request.getProtocol(),status));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,6 +45,7 @@ import javax.servlet.http.HttpServletResponseWrapper;
|
||||||
import org.eclipse.jetty.server.Connector;
|
import org.eclipse.jetty.server.Connector;
|
||||||
import org.eclipse.jetty.server.Request;
|
import org.eclipse.jetty.server.Request;
|
||||||
import org.eclipse.jetty.server.RequestLog;
|
import org.eclipse.jetty.server.RequestLog;
|
||||||
|
import org.eclipse.jetty.server.Response;
|
||||||
import org.eclipse.jetty.server.Server;
|
import org.eclipse.jetty.server.Server;
|
||||||
import org.eclipse.jetty.server.ServerConnector;
|
import org.eclipse.jetty.server.ServerConnector;
|
||||||
import org.eclipse.jetty.server.handler.RequestLogHandler;
|
import org.eclipse.jetty.server.handler.RequestLogHandler;
|
||||||
|
@ -887,8 +888,10 @@ public class AsyncServletTest
|
||||||
class Log extends AbstractLifeCycle implements RequestLog
|
class Log extends AbstractLifeCycle implements RequestLog
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void log(Request request, int status, long written)
|
public void log(Request request, Response response)
|
||||||
{
|
{
|
||||||
|
int status = response.getCommittedMetaData().getStatus();
|
||||||
|
long written = response.getHttpChannel().getBytesWritten();
|
||||||
_log.add(status+" "+written+" "+request.getRequestURI());
|
_log.add(status+" "+written+" "+request.getRequestURI());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,8 +77,9 @@ public class ServletRequestLogTest
|
||||||
public List<String> captured = new ArrayList<>();
|
public List<String> captured = new ArrayList<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void log(Request request, int status, long written)
|
public void log(Request request, Response response)
|
||||||
{
|
{
|
||||||
|
int status = response.getCommittedMetaData().getStatus();
|
||||||
captured.add(String.format("%s %s %s %03d",request.getMethod(),request.getRequestURI(),request.getProtocol(),status));
|
captured.add(String.format("%s %s %s %03d",request.getMethod(),request.getRequestURI(),request.getProtocol(),status));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ import java.util.List;
|
||||||
import org.eclipse.jetty.server.Connector;
|
import org.eclipse.jetty.server.Connector;
|
||||||
import org.eclipse.jetty.server.Request;
|
import org.eclipse.jetty.server.Request;
|
||||||
import org.eclipse.jetty.server.RequestLog;
|
import org.eclipse.jetty.server.RequestLog;
|
||||||
|
import org.eclipse.jetty.server.Response;
|
||||||
import org.eclipse.jetty.server.Server;
|
import org.eclipse.jetty.server.Server;
|
||||||
import org.eclipse.jetty.server.ServerConnector;
|
import org.eclipse.jetty.server.ServerConnector;
|
||||||
import org.eclipse.jetty.server.handler.RequestLogHandler;
|
import org.eclipse.jetty.server.handler.RequestLogHandler;
|
||||||
|
@ -193,8 +194,10 @@ public class ContinuationTest extends ContinuationBase
|
||||||
class Log extends AbstractLifeCycle implements RequestLog
|
class Log extends AbstractLifeCycle implements RequestLog
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void log(Request request, int status, long written)
|
public void log(Request request, Response response)
|
||||||
{
|
{
|
||||||
|
int status = response.getCommittedMetaData().getStatus();
|
||||||
|
long written = response.getHttpChannel().getBytesWritten();
|
||||||
_log.add(status+" "+written+" "+request.getRequestURI());
|
_log.add(status+" "+written+" "+request.getRequestURI());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue