*
* @param request The request object from which to obtain access log info
*/
public void logRequestEntry(String header, SipServletRequest sreq) {
String logString = null;
SipServletRequestImpl request = (SipServletRequestImpl) sreq;
CharBuffer charBuffer = CharBuffer.allocate(MIN_BUFFER_SIZE);
for (int i=0; i<patternComponents.size(); i++) {
String pc = patternComponents.get(i);
if (CLIENT_NAME.equals(pc)) {
appendClientName(charBuffer, request.getRemoteUser());
} else if (AUTH_USER_NAME.equals(pc)) {
appendAuthUserName(charBuffer, request.getRemoteHost());
} else if (DATE_TIME.equals(pc)) {
appendCurrentDate(charBuffer);
} else if (REQUEST.equals(pc)) {
appendRequestInfo(charBuffer, request);
} else if (RESPONSE_LENGTH.equals(pc)) {
appendResponseLength(charBuffer, request.getContentLength());
} else if (VIA.equals(pc)) {
Header via = request.getRawHeader(Header.VIA);
appendVia(charBuffer, via);
} else if (CALL_ID.equals(pc)) {
Header callId = request.getRawHeader(Header.CALL_ID);
appendString(charBuffer, callId);
} else if (TO.equals(pc)) {
Header to = request.getRawHeader(Header.TO);
appendString(charBuffer, to);
} else if (FROM.equals(pc)) {
Header from = request.getRawHeader(Header.FROM);
appendString(charBuffer, from);
} else if (CSEQ.equals(pc)) {
Header cseq = request.getRawHeader(Header.CSEQ);
appendString(charBuffer, cseq);
} else if (MAX_FORWARDS.equals(pc)) {
Header maxForwards = request.getRawHeader(Header.MAX_FORWARDS);
appendString(charBuffer, maxForwards);
} else if (CONTACT.equals(pc)) {
Header contact = request.getRawHeader(Header.CONTACT);
appendString(charBuffer, contact);
} else if (CONTENT_TYPE.equals(pc)) {
Header contentType = request.getRawHeader(Header.CONTENT_TYPE);
appendString(charBuffer, contentType);
}
charBuffer.put(SPACE);
}
charBuffer.put("\n");