diff options
3 files changed, 43 insertions, 12 deletions
diff --git a/hosted-api/src/main/java/ai/vespa/hosted/api/ControllerHttpClient.java b/hosted-api/src/main/java/ai/vespa/hosted/api/ControllerHttpClient.java index 43864f5f9d6..52ccec76799 100644 --- a/hosted-api/src/main/java/ai/vespa/hosted/api/ControllerHttpClient.java +++ b/hosted-api/src/main/java/ai/vespa/hosted/api/ControllerHttpClient.java @@ -313,11 +313,12 @@ public abstract class ControllerHttpClient { private static DeploymentLog toDeploymentLog(HttpResponse<byte[]> response) { Inspector rootObject = toInspector(response); List<DeploymentLog.Entry> entries = new ArrayList<>(); - rootObject.field("log").traverse((ObjectTraverser) (__, entryArray) -> + rootObject.field("log").traverse((ObjectTraverser) (step, entryArray) -> entryArray.traverse((ArrayTraverser) (___, entryObject) -> { entries.add(new DeploymentLog.Entry(Instant.ofEpochMilli(entryObject.field("at").asLong()), - entryObject.field("type").asString(), - entryObject.field("message").asString())); + DeploymentLog.Level.of(entryObject.field("type").asString()), + entryObject.field("message").asString(), + "copyVespaLogs".equals(step))); })); return new DeploymentLog(entries, rootObject.field("active").asBool(), diff --git a/hosted-api/src/main/java/ai/vespa/hosted/api/DeploymentLog.java b/hosted-api/src/main/java/ai/vespa/hosted/api/DeploymentLog.java index a42072fffd8..ded82a8573d 100644 --- a/hosted-api/src/main/java/ai/vespa/hosted/api/DeploymentLog.java +++ b/hosted-api/src/main/java/ai/vespa/hosted/api/DeploymentLog.java @@ -46,20 +46,22 @@ public class DeploymentLog { public static class Entry { private final Instant at; - private final String level; + private final Level level; private final String message; + private final boolean isVespaLogEntry; - public Entry(Instant at, String level, String message) { + public Entry(Instant at, Level level, String message, boolean isVespaLogEntry) { this.at = at; this.level = level; this.message = message; + this.isVespaLogEntry = isVespaLogEntry; } public Instant at() { return at; } - public String level() { + public Level level() { return level; } @@ -67,6 +69,28 @@ public class DeploymentLog { return message; } + public boolean isVespaLogEntry() { + return isVespaLogEntry; + } + + } + + + public enum Level { + error, + warning, + info, + debug; + + public static Level of(String level) { + switch (level) { + case "error" : return error; + case "warning" : return warning; + case "info" : return info; + case "debug" : return debug; + default : return debug; + } + } } diff --git a/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/DeployMojo.java b/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/DeployMojo.java index 74e13066964..e2d10316a21 100644 --- a/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/DeployMojo.java +++ b/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/DeployMojo.java @@ -31,8 +31,13 @@ public class DeployMojo extends AbstractVespaDeploymentMojo { @Parameter(property = "follow", defaultValue = "true") private boolean follow; + @Parameter(property = "vespaLogLevel", defaultValue = "error") + private String vespaLogLevel; + private DeploymentLog.Level loggable; + @Override protected void doExecute() throws MojoFailureException, MojoExecutionException { + loggable = DeploymentLog.Level.valueOf(vespaLogLevel); Deployment deployment = Deployment.ofPackage(Paths.get(firstNonBlank(applicationZip, projectPathOf("target", "application.zip")))); if (vespaVersion != null) deployment = deployment.atVersion(vespaVersion); @@ -84,12 +89,13 @@ public class DeployMojo extends AbstractVespaDeploymentMojo { String timestamp = formatter.format(entry.at()); String message = String.join(padding, entry.message().split("\n")) .replaceAll("\\s*\n", "\n").trim(); - switch (entry.level()) { - case "error" : getLog().error(" [" + timestamp + "] " + message); break; - case "warning" : getLog().warn (" [" + timestamp + "] " + message); break; - case "info" : getLog().info(" [" + timestamp + "] " + message); break; - default : getLog().debug(" [" + timestamp + "] " + message); break; - } + if ( ! entry.isVespaLogEntry() || loggable.compareTo(entry.level()) <= 0) + switch (entry.level()) { + case error : getLog().error(" [" + timestamp + "] " + message); break; + case warning : getLog().warn (" [" + timestamp + "] " + message); break; + case info : getLog().info(" [" + timestamp + "] " + message); break; + default : getLog().debug(" [" + timestamp + "] " + message); break; + } } } |