summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hosted-api/src/main/java/ai/vespa/hosted/api/ControllerHttpClient.java7
-rw-r--r--hosted-api/src/main/java/ai/vespa/hosted/api/DeploymentLog.java30
-rw-r--r--vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/DeployMojo.java18
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;
+ }
}
}