Quarkus: Simplify and document on/off toggle.

Change-Id: I90b5879ff99ec54deb17453af709ce2ba7070c0d
diff --git a/README.adoc b/README.adoc
index 27d8cf8..3460598 100644
--- a/README.adoc
+++ b/README.adoc
@@ -63,6 +63,14 @@
 }
 ----
 
+By default the extension is turned on.  You can turn the extension on
+or off explicitly by configuring the `quarkus.log.console.google` key
+in `application.properties`:
+
+[source,properties]
+----
+quarkus.log.console.google = true
+----
 
 == Activation (Other Frameworks)
 
diff --git a/deployment/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/deployment/GoogleCloudLoggingProcessor.java b/deployment/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/deployment/GoogleCloudLoggingProcessor.java
index fdfcb1c..8ef0962 100644
--- a/deployment/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/deployment/GoogleCloudLoggingProcessor.java
+++ b/deployment/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/deployment/GoogleCloudLoggingProcessor.java
@@ -4,8 +4,8 @@
 
 package eu.mulk.quarkus.googlecloud.jsonlogging.deployment;
 
+import eu.mulk.quarkus.googlecloud.jsonlogging.runtime.GoogleCloudJsonLoggingConfiguration;
 import eu.mulk.quarkus.googlecloud.jsonlogging.runtime.GoogleCloudJsonLoggingRecorder;
-import eu.mulk.quarkus.googlecloud.jsonlogging.runtime.GoogleJsonLogConfig;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.annotations.ExecutionTime;
 import io.quarkus.deployment.annotations.Record;
@@ -39,7 +39,8 @@
    */
   @BuildStep
   @Record(ExecutionTime.RUNTIME_INIT)
-  public LogConsoleFormatBuildItem setUpFormatter(GoogleCloudJsonLoggingRecorder recorder, GoogleJsonLogConfig config) {
-    return new LogConsoleFormatBuildItem(recorder.initialize(config));
+  public LogConsoleFormatBuildItem setUpFormatter(
+      GoogleCloudJsonLoggingRecorder recorder, GoogleCloudJsonLoggingConfiguration configuration) {
+    return new LogConsoleFormatBuildItem(recorder.initialize(configuration));
   }
 }
diff --git a/examples/quarkus/pom.xml b/examples/quarkus/pom.xml
index 2eeeb40..6e4f042 100644
--- a/examples/quarkus/pom.xml
+++ b/examples/quarkus/pom.xml
@@ -14,7 +14,7 @@
   <parent>
     <groupId>eu.mulk.quarkus-googlecloud-jsonlogging</groupId>
     <artifactId>quarkus-googlecloud-jsonlogging-parent</artifactId>
-    <version>4.0.0</version>
+    <version>5.0.0</version>
   </parent>
 
   <artifactId>quarkus-googlecloud-jsonlogging-quarkus-example</artifactId>
diff --git a/examples/quarkus/src/main/resources/application.properties b/examples/quarkus/src/main/resources/application.properties
index 8b991a7..24eae27 100644
--- a/examples/quarkus/src/main/resources/application.properties
+++ b/examples/quarkus/src/main/resources/application.properties
@@ -1,3 +1,5 @@
 # SPDX-FileCopyrightText: © 2021 Matthias Andreas Benkard <code@mail.matthias.benkard.de>
 #
-# SPDX-License-Identifier: GPL-3.0-or-later
\ No newline at end of file
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+quarkus.log.console.google = true
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/GoogleCloudJsonLoggingConfiguration.java b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/GoogleCloudJsonLoggingConfiguration.java
new file mode 100644
index 0000000..21a4ca9
--- /dev/null
+++ b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/GoogleCloudJsonLoggingConfiguration.java
@@ -0,0 +1,22 @@
+// SPDX-FileCopyrightText: © 2022 Matthias Andreas Benkard <code@mail.matthias.benkard.de>
+//
+// SPDX-License-Identifier: LGPL-3.0-or-later
+
+package eu.mulk.quarkus.googlecloud.jsonlogging.runtime;
+
+import io.quarkus.runtime.annotations.ConfigItem;
+import io.quarkus.runtime.annotations.ConfigPhase;
+import io.quarkus.runtime.annotations.ConfigRoot;
+
+/** Configuration for console logging in Google Cloud Logging JSON format. */
+@ConfigRoot(prefix = "quarkus.log.console", name = "google", phase = ConfigPhase.RUN_TIME)
+public class GoogleCloudJsonLoggingConfiguration {
+
+  /**
+   * Whether to enable Google Cloud Logging JSON logging to <code>stdout</code>/<code>stderr</code>.
+   *
+   * <p>Replaces the regular plain-text format for console logs.
+   */
+  @ConfigItem(defaultValue = "true", name = ConfigItem.PARENT)
+  public boolean enabled;
+}
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/GoogleCloudJsonLoggingRecorder.java b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/GoogleCloudJsonLoggingRecorder.java
index 8bdb308..af09231 100644
--- a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/GoogleCloudJsonLoggingRecorder.java
+++ b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/GoogleCloudJsonLoggingRecorder.java
@@ -10,7 +10,6 @@
 import io.quarkus.arc.Arc;
 import io.quarkus.runtime.RuntimeValue;
 import io.quarkus.runtime.annotations.Recorder;
-
 import java.util.Collection;
 import java.util.Optional;
 import java.util.stream.Collectors;
@@ -27,8 +26,9 @@
    *
    * @return the registered {@link Formatter}.
    */
-  public RuntimeValue<Optional<java.util.logging.Formatter>> initialize(GoogleJsonLogConfig config) {
-    if(!config.jsonGoogle.enable) {
+  public RuntimeValue<Optional<java.util.logging.Formatter>> initialize(
+      GoogleCloudJsonLoggingConfiguration configuration) {
+    if (!configuration.enabled) {
       return new RuntimeValue<>(Optional.empty());
     }
 
@@ -41,5 +41,4 @@
 
     return new RuntimeValue<>(Optional.of(Formatter.load(parameterProviders, labelProviders)));
   }
-
 }
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/GoogleJsonLogConfig.java b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/GoogleJsonLogConfig.java
deleted file mode 100644
index b73b0bc..0000000
--- a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/runtime/GoogleJsonLogConfig.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package eu.mulk.quarkus.googlecloud.jsonlogging.runtime;
-
-import io.quarkus.runtime.annotations.*;
-
-/**
- * Configuration for Google JSON log formatting.
- */
-@ConfigRoot(phase = ConfigPhase.RUN_TIME, name = "log.console")
-public class GoogleJsonLogConfig {
-
-    /**
-     * Console google json logging.
-     */
-    @ConfigDocSection
-    @ConfigItem(name = "json.google")
-    JsonConfig jsonGoogle;
-
-    @ConfigGroup
-    public static class JsonConfig {
-
-        /**
-         * Determine whether to enable the JSON console formatting extension, which disables "normal" console formatting.
-         */
-        @ConfigItem(name = ConfigItem.PARENT, defaultValue = "true")
-        boolean enable;
-
-    }
-}
\ No newline at end of file