将这些答案结合到适用于springboot 2.0的东西中
import org.apache.catalina.valves.AbstractAccessLogValve;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;import org.springframework.boot.web.server.WebServerFactoryCustomizer;import org.springframework.stereotype.Component;import java.io.CharArrayWriter;@Component@Slf4jpublic class CustomizeEmbeddedTomcatContainer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> { @Override public void customize(TomcatServletWebServerFactory factory) { log.info("configuring embedded Tomcat"); TomcatSlf4jAccessValve accessLogValve = new TomcatSlf4jAccessValve(); accessLogValve.setEnabled(true); accessLogValve.setPattern("request: method=%m uri="%U" response: statuspre=%s bytes=%b duration=%D(ms) client: remoteip=%a user=%u useragent="%{User-Agent}i""); factory.addContextValves(accessLogValve); } public static class TomcatSlf4jAccessValve extends AbstractAccessLogValve { Logger httpAccessLogLogger = LoggerFactory.getLogger("http_access_log"); @Override protected void log(CharArrayWriter message) { httpAccessLogLogger.info(message.toString()); } }}


