/** Logs a request using the current format. */ public void log(HttpServletRequest req, HttpServletResponse res, ServletContext application) throws IOException { // server/1kk7 CauchoRequest cRequest = (CauchoRequest) req; HttpServletResponseImpl responseImpl = (HttpServletResponseImpl) res; AbstractHttpRequest absRequest = cRequest.getAbstractHttpRequest(); HttpServletRequestImpl request = absRequest.getRequestFacade(); AbstractHttpResponse response = responseImpl.getAbstractHttpResponse(); // skip excluded urls if (_excludes.length > 0) { byte[] data = absRequest.getUriBuffer(); int sublen = absRequest.getUriLength(); String uri = new String(data, 0, sublen); for (Pattern pattern : _excludes) { if (pattern.matcher(uri).find()) { return; } } } LogBuffer logBuffer = _logWriter.allocateBuffer(); try { byte[] buffer = logBuffer.getBuffer(); int length = log(request, responseImpl, response, buffer, 0, buffer.length); logBuffer.setLength(length); _logWriter.writeBuffer(logBuffer); logBuffer = null; } finally { if (logBuffer != null) _logWriter.freeBuffer(logBuffer); } }