Browse Source

Log all configured connectors when Tomcat is initialized

Previously, Tomcat initialization would only log the port of the
primary connector and would omit the scheme, whereas once Tomcat was
started the port of every connector and their schemes would be logged.

This commit makes things symmetrical by updating the logging performed
at initialization to include every connector's port and scheme.

During initialization the port number that the connector the has
been configured with is logged. This means that, if the connector has
been configured to bind to an free port, 0 will be logged. Once
Tomcat has started, the number of the port that the connector has
bound to is logged.

Closes gh-1601
pull/1635/merge
Andy Wilkinson 11 years ago
parent
commit
ef8472a951
  1. 23
      spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainer.java
  2. 1
      spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java

23
spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainer.java

@ -75,6 +75,8 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer @@ -75,6 +75,8 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer
}
private synchronized void initialize() throws EmbeddedServletContainerException {
this.logger.info("Tomcat initialized with port(s): "
+ getConfiguredPortsDescription());
try {
addInstanceIdToEngineName();
@ -97,6 +99,15 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer @@ -97,6 +99,15 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer
}
}
private String getConfiguredPortsDescription() {
StringBuilder ports = new StringBuilder();
for (Connector connector : this.tomcat.getService().findConnectors()) {
ports.append(ports.length() == 0 ? "" : " ");
ports.append(connector.getPort() + "/" + connector.getScheme());
}
return ports.toString();
}
private void addInstanceIdToEngineName() {
int instanceId = containerCounter.incrementAndGet();
if (instanceId > 0) {
@ -153,6 +164,8 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer @@ -153,6 +164,8 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer
stopSilently();
throw new IllegalStateException("Tomcat connector in failed state");
}
this.logger.info("Tomcat started on port(s): " + getActualPortsDescription());
}
private boolean connectorsHaveFailedToStart() {
@ -204,7 +217,6 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer @@ -204,7 +217,6 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer
((TomcatEmbeddedContext) child).deferredLoadOnStartup();
}
}
logPorts();
}
catch (Exception ex) {
this.logger.error("Cannot start connector: ", ex);
@ -217,14 +229,13 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer @@ -217,14 +229,13 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer
return this.serviceConnectors;
}
private void logPorts() {
private String getActualPortsDescription() {
StringBuilder ports = new StringBuilder();
for (Connector additionalConnector : this.tomcat.getService().findConnectors()) {
for (Connector connector : this.tomcat.getService().findConnectors()) {
ports.append(ports.length() == 0 ? "" : " ");
ports.append(additionalConnector.getLocalPort() + "/"
+ additionalConnector.getScheme());
ports.append(connector.getLocalPort() + "/" + connector.getScheme());
}
this.logger.info("Tomcat started on port(s): " + ports.toString());
return ports.toString();
}
@Override

1
spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java

@ -149,7 +149,6 @@ public class TomcatEmbeddedServletContainerFactory extends @@ -149,7 +149,6 @@ public class TomcatEmbeddedServletContainerFactory extends
}
prepareContext(tomcat.getHost(), initializers);
this.logger.info("Server initialized with port: " + getPort());
return getTomcatEmbeddedServletContainer(tomcat);
}

Loading…
Cancel
Save