No longer log hostname during application start

Remove hostname logging since `InetAddress.getLocalHost().getHostName()`
causes a network lookup and can take a long time.

Closes gh-32908
This commit is contained in:
Phillip Webb
2022-10-31 13:40:28 -07:00
parent c81ebf63d9
commit 2b5a29d514
4 changed files with 13 additions and 49 deletions

View File

@@ -21,7 +21,6 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -134,10 +133,8 @@ public class ApplicationRunner extends DefaultTask {
private void awaitLogging(Process process) {
long end = System.currentTimeMillis() + 30000;
String expectedLogging = this.expectedLogging.get();
List<String> outputLines = Collections.emptyList();
while (System.currentTimeMillis() < end) {
outputLines = outputLines();
for (String line : outputLines) {
for (String line : outputLines()) {
if (line.contains(expectedLogging)) {
return;
}
@@ -146,10 +143,7 @@ public class ApplicationRunner extends DefaultTask {
throw new IllegalStateException("Process exited before '" + expectedLogging + "' was logged");
}
}
StringBuilder message = new StringBuilder(
"After 30 seconds '" + expectedLogging + "' had not be logged in the following output:\n\n");
outputLines.forEach((line) -> message.append(line).append("\n"));
throw new IllegalStateException(message.toString());
throw new IllegalStateException("'" + expectedLogging + "' was not logged within 30 seconds");
}
private List<String> outputLines() {
@@ -177,8 +171,8 @@ public class ApplicationRunner extends DefaultTask {
private List<String> normalize(List<String> lines) {
List<String> normalizedLines = lines;
Map<String, String> normalizations = new HashMap<>(this.normalizations);
normalizations.put("(Starting .* using Java .* on ).*( with PID [\\d]+ \\().*( started by ).*( in ).*(\\))",
"$1myhost$2" + this.applicationJar.get() + "$3myuser$4/opt/apps/$5");
normalizations.put("(Starting .* using Java .* with PID [\\d]+ \\().*( started by ).*( in ).*(\\))",
"$1" + this.applicationJar.get() + "$2myuser$3/opt/apps/$4");
for (Entry<String, String> normalization : normalizations.entrySet()) {
Pattern pattern = Pattern.compile(normalization.getKey());
normalizedLines = normalize(normalizedLines, pattern, normalization.getValue());