ch.qos.logback.access.pattern.FullResponseConverter Maven / Gradle / Ivy
/**
* Logback: the reliable, generic, fast and flexible logging framework.
* Copyright (C) 1999-2015, QOS.ch. All rights reserved.
*
* This program and the accompanying materials are dual-licensed under
* either the terms of the Eclipse Public License v1.0 as published by
* the Eclipse Foundation
*
* or (per the licensee's choosing)
*
* under the terms of the GNU Lesser General Public License version 2.1
* as published by the Free Software Foundation.
*/
package ch.qos.logback.access.pattern;
import java.util.List;
import ch.qos.logback.access.spi.IAccessEvent;
import ch.qos.logback.core.CoreConstants;
public class FullResponseConverter extends AccessConverter {
@Override
public String convert(IAccessEvent ae) {
StringBuilder buf = new StringBuilder();
buf.append("HTTP/1.1 ");
int statusCode = ae.getStatusCode();
buf.append(statusCode);
buf.append(" ");
buf.append(getStatusCodeDescription(statusCode));
buf.append(CoreConstants.LINE_SEPARATOR);
List hnList = ae.getResponseHeaderNameList();
for (String headerName : hnList) {
buf.append(headerName);
buf.append(": ");
buf.append(ae.getResponseHeader(headerName));
buf.append(CoreConstants.LINE_SEPARATOR);
}
buf.append(CoreConstants.LINE_SEPARATOR);
buf.append(ae.getResponseContent());
buf.append(CoreConstants.LINE_SEPARATOR);
return buf.toString();
}
static String getStatusCodeDescription(int sc) {
switch (sc) {
case 200:
return "OK";
case 201:
return "Created";
case 202:
return "Accepted";
case 203:
return "Non-Authoritative Information";
case 204:
return "No Content";
case 205:
return "Reset Content";
case 206:
return "Partial Content";
case 300:
return "Multiple Choices";
case 301:
return "Moved Permanently";
case 302:
return "Found";
case 303:
return "See Other";
case 304:
return "Not Modified";
case 305:
return "Use Proxy";
case 306:
return "(Unused)";
case 307:
return "Temporary Redirect";
case 400:
return "Bad Request";
case 401:
return "Unauthorized";
case 402:
return "Payment Required";
case 403:
return "Forbidden";
case 404:
return "Not Found";
case 405:
return "Method Not Allowed";
case 406:
return "Not Acceptable";
case 407:
return "Proxy Authentication Required";
case 408:
return "Request Timeout";
case 409:
return "Conflict";
case 410:
return "Gone";
case 411:
return "Length Required";
case 412:
return "Precondition Failed";
case 413:
return "Request Entity Too Large";
case 414:
return "Request-URI Too Long";
case 415:
return "Unsupported Media Type";
case 416:
return "Requested Range Not Satisfiable";
case 417:
return "Expectation Failed";
case 500:
return "Internal Server Error";
case 501:
return "Not Implemented";
case 502:
return "Bad Gateway";
case 503:
return "Service Unavailable";
case 504:
return "Gateway Timeout";
case 505:
return "HTTP Version Not Supported";
default:
return "NA";
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy