package eu.europeana.cloud.service.commons.logging;
public class LoggingMessageBuilder {
private StringBuilder logMessageBuilder;
private int statusCode;
private long requestTime;
private String remoteAddr;
private String resourcePath;
private String requestMethod;
private static String LOG_MESSAGE_PATTERN = "%STATUS_CODE %REQUEST_TIME %CLIENT_IP %REQUEST_METHOD %RESOURCE_PATH Request received";
public LoggingMessageBuilder(){
logMessageBuilder = new StringBuilder();
}
public LoggingMessage build(){
String message = LOG_MESSAGE_PATTERN;
message = message.replace("%STATUS_CODE", statusCode+"");
message = message.replace("%REQUEST_TIME",requestTime+"ms");
message = message.replace("%CLIENT_IP", remoteAddr);
message = message.replace("%RESOURCE_PATH", resourcePath);
message = message.replace("%REQUEST_METHOD", requestMethod);
LoggingMessage m = new LoggingMessage();
m.setMessage(message);
m.setStatus(statusCode);
return m;
}
public LoggingMessageBuilder withStatusCode(int statusCode){
this.statusCode = statusCode;
return this;
}
public LoggingMessageBuilder withRequestTime(long requestTime){
this.requestTime = requestTime;
return this;
}
public LoggingMessageBuilder withRemoteAddr(String remoteAddr){
this.remoteAddr = remoteAddr;
return this;
}
public LoggingMessageBuilder withResourcePath(String resourcePath){
this.resourcePath = resourcePath;
return this;
}
public LoggingMessageBuilder withRequestMethod(String requestMethod){
this.requestMethod = requestMethod;
return this;
}
}