BlueMap/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/LoggingRequestHandler.java

43 lines
1.2 KiB
Java

package de.bluecolored.bluemap.common.web;
import de.bluecolored.bluemap.common.web.http.HttpRequest;
import de.bluecolored.bluemap.common.web.http.HttpRequestHandler;
import de.bluecolored.bluemap.common.web.http.HttpResponse;
import de.bluecolored.bluemap.core.logger.Logger;
public class LoggingRequestHandler implements HttpRequestHandler {
private final HttpRequestHandler delegate;
private final Logger logger;
public LoggingRequestHandler(HttpRequestHandler delegate) {
this(delegate, Logger.global);
}
public LoggingRequestHandler(HttpRequestHandler delegate, Logger logger) {
this.delegate = delegate;
this.logger = logger;
}
@Override
public HttpResponse handle(HttpRequest request) {
String log = request.getSource() + " \""
+ request.getMethod()
+ " " + request.getAddress()
+ " " + request.getVersion()
+ "\" ";
HttpResponse response = delegate.handle(request);
log += response.getStatusCode().toString();
if (response.getStatusCode().getCode() < 400) {
logger.logInfo(log);
} else {
logger.logWarning(log);
}
return response;
}
}