package io.dropwizard.request.logging.layout;
import ch.qos.logback.access.PatternLayout;
import ch.qos.logback.core.Context;
import java.util.TimeZone;
/**
* A base layout for Logback Access request logs.
* <ul>
* <li>Extends {@link PatternLayout}.</li>
* <li>Disables pattern headers.</li>
* <li>Sets the pattern to the given timezone.</li>
* </ul>
*/
public class LogbackAccessRequestLayout extends PatternLayout {
static {
// Replace the buggy default converter which don't work async appenders
defaultConverterMap.put("requestParameter", SafeRequestParameterConverter.class.getName());
defaultConverterMap.put("reqParameter", SafeRequestParameterConverter.class.getName());
}
public LogbackAccessRequestLayout(Context context, TimeZone timeZone) {
setOutputPatternAsHeader(false);
setPattern("%h %l %u [%t{dd/MMM/yyyy:HH:mm:ss Z," + timeZone.getID()
+ "}] \"%r\" %s %b \"%i{Referer}\" \"%i{User-Agent}\" %D");
setContext(context);
}
}