diff --git a/cli/src/main/java/org/mobilitydata/gtfsvalidator/cli/Arguments.java b/cli/src/main/java/org/mobilitydata/gtfsvalidator/cli/Arguments.java index 7b80fd8e86..3d2916d3e9 100644 --- a/cli/src/main/java/org/mobilitydata/gtfsvalidator/cli/Arguments.java +++ b/cli/src/main/java/org/mobilitydata/gtfsvalidator/cli/Arguments.java @@ -114,6 +114,11 @@ public class Arguments { description = "Output JSON report to stdout instead of writing to files (conflicts with -o)") private boolean stdoutOutput = false; + @Parameter( + names = {"-q", "--quiet"}, + description = "Silences non-critical log messages when running validator") + private boolean quiet = false; + ValidationRunnerConfig toConfig() throws URISyntaxException { ValidationRunnerConfig.Builder builder = ValidationRunnerConfig.builder(); if (input != null) { @@ -149,6 +154,7 @@ ValidationRunnerConfig toConfig() throws URISyntaxException { builder.setPrettyJson(pretty); builder.setSkipValidatorUpdate(skipValidatorUpdate); builder.setStdoutOutput(stdoutOutput); + builder.setQuietLogs(quiet); return builder.build(); } @@ -172,6 +178,10 @@ public boolean getStdoutOutput() { return stdoutOutput; } + public boolean getQuietLogs() { + return quiet; + } + /** * @return true if CLI parameter combination is legal, otherwise return false */ diff --git a/main/src/main/java/org/mobilitydata/gtfsvalidator/runner/ValidationRunner.java b/main/src/main/java/org/mobilitydata/gtfsvalidator/runner/ValidationRunner.java index a99687951b..dd813bfdba 100644 --- a/main/src/main/java/org/mobilitydata/gtfsvalidator/runner/ValidationRunner.java +++ b/main/src/main/java/org/mobilitydata/gtfsvalidator/runner/ValidationRunner.java @@ -106,8 +106,10 @@ public Status run(ValidationRunnerConfig config) { } GtfsFeedLoader feedLoader = new GtfsFeedLoader(ClassGraphDiscovery.discoverTables()); + if (!config.quietLogs()) { logger.atInfo().log("validation config:\n%s", config); logger.atInfo().log("validators:\n%s", validatorLoader.listValidators()); + } final long startNanos = System.nanoTime(); // Input. @@ -248,8 +250,10 @@ public static void printSummary( logger.atWarning().log(b.toString()); } + if (!config.quietLogs()) { logger.atInfo().log("Validation took %.3f seconds%n", feedMetadata.validationTimeSeconds); logger.atInfo().log(feedContainer.tableTotalsText()); + } } /** diff --git a/main/src/main/java/org/mobilitydata/gtfsvalidator/runner/ValidationRunnerConfig.java b/main/src/main/java/org/mobilitydata/gtfsvalidator/runner/ValidationRunnerConfig.java index 096d8e5ab2..738c86f9ee 100644 --- a/main/src/main/java/org/mobilitydata/gtfsvalidator/runner/ValidationRunnerConfig.java +++ b/main/src/main/java/org/mobilitydata/gtfsvalidator/runner/ValidationRunnerConfig.java @@ -69,6 +69,9 @@ public Path systemErrorsReportPath() { // If true, output JSON report to stdout instead of writing to files public abstract boolean stdoutOutput(); + // If true, the validation runner will not print informational logging messages + public abstract boolean quietLogs(); + public static Builder builder() { // Set reasonable defaults where appropriate. return new AutoValue_ValidationRunnerConfig.Builder() @@ -80,7 +83,8 @@ public static Builder builder() { .setCountryCode(CountryCode.forStringOrUnknown(CountryCode.ZZ)) .setDateForValidation(LocalDate.now()) .setSkipValidatorUpdate(false) - .setStdoutOutput(false); + .setStdoutOutput(false) + .setQuietLogs(false); } @AutoValue.Builder @@ -109,6 +113,8 @@ public abstract static class Builder { public abstract Builder setStdoutOutput(boolean stdoutOutput); + public abstract Builder setQuietLogs(boolean quietLogs); + public abstract ValidationRunnerConfig build(); } } diff --git a/main/src/test/java/org/mobilitydata/gtfsvalidator/reportsummary/model/JsonReportSummaryGeneratorTest.java b/main/src/test/java/org/mobilitydata/gtfsvalidator/reportsummary/model/JsonReportSummaryGeneratorTest.java index b21ec17573..4c88cfaecc 100644 --- a/main/src/test/java/org/mobilitydata/gtfsvalidator/reportsummary/model/JsonReportSummaryGeneratorTest.java +++ b/main/src/test/java/org/mobilitydata/gtfsvalidator/reportsummary/model/JsonReportSummaryGeneratorTest.java @@ -47,6 +47,7 @@ private static ValidationRunnerConfig generateValidationRunnerConfig() throws Ex builder.setValidationReportFileName("some_report_filename"); builder.setDateForValidation(LocalDate.parse("2020-01-02")); builder.setStdoutOutput(false); + builder.setQuietLogs(false); return builder.build(); }