From ef8472a9517595cd4705571df301a8063c3f7947 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 1 Oct 2014 14:46:35 +0100 Subject: [PATCH] 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 --- .../TomcatEmbeddedServletContainer.java | 23 ++++++++++++++----- ...TomcatEmbeddedServletContainerFactory.java | 1 - 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainer.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainer.java index d60a98fbc25..32442435402 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainer.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainer.java @@ -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 } } + 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 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 ((TomcatEmbeddedContext) child).deferredLoadOnStartup(); } } - logPorts(); } catch (Exception ex) { this.logger.error("Cannot start connector: ", ex); @@ -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 diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java index 51fa948a82e..d451ca09dea 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java @@ -149,7 +149,6 @@ public class TomcatEmbeddedServletContainerFactory extends } prepareContext(tomcat.getHost(), initializers); - this.logger.info("Server initialized with port: " + getPort()); return getTomcatEmbeddedServletContainer(tomcat); }