public class WebslingerCatalinaContainer extends CatalinaContainer {
protected Engine createEngine(ContainerConfig.Container.Property engineConfig) throws ContainerException {
Engine engine = super.createEngine(engineConfig);
String logDir = ContainerConfig.getPropertyValue(engineConfig, "access-log-dir", null);
if (logDir == null) return engine;
WebslingerAccessLogValve al = new WebslingerAccessLogValve();
if (!logDir.startsWith("/")) logDir = System.getProperty("ofbiz.home") + "/" + logDir;
File logFile = new File(logDir);
if (!logFile.isDirectory()) throw new ContainerException("Log directory [" + logDir + "] is not available; make sure the directory is created");
al.setDirectory(logFile.getAbsolutePath());
String alp2 = ContainerConfig.getPropertyValue(engineConfig, "access-log-pattern", null);
if (!UtilValidate.isEmpty(alp2)) al.setPattern(alp2);
String alp3 = ContainerConfig.getPropertyValue(engineConfig, "access-log-prefix", null);
if (!UtilValidate.isEmpty(alp3)) al.setPrefix(alp3);
al.setResolveHosts(ContainerConfig.getPropertyValue(engineConfig, "access-log-resolve", true));
al.setRotatable(ContainerConfig.getPropertyValue(engineConfig, "access-log-rotate", false));
((StandardEngine) engine).addValve(al);
return engine;
}