You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/06/09 07:49:30 UTC

[camel] branch main updated: 18151: camel-jbang - Export and pipe command write silent run to log file in user.home/.camel so it can be used for trouble shooting.

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 3c45b2fd6bb 18151: camel-jbang - Export and pipe command write silent run to log file in user.home/.camel so it can be used for trouble shooting.
3c45b2fd6bb is described below

commit 3c45b2fd6bbaf438b99a1f1a5f88a069b58fa9bf
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Jun 9 09:49:10 2022 +0200

    18151: camel-jbang - Export and pipe command write silent run to log file in user.home/.camel so it can be used for trouble shooting.
---
 .../dsl/jbang/core/commands/AbstractSearch.java     |  2 +-
 .../camel/dsl/jbang/core/commands/BaseExport.java   | 21 +++++++++++++++++++++
 .../dsl/jbang/core/commands/ExportCamelMain.java    |  2 +-
 .../dsl/jbang/core/commands/ExportQuarkus.java      |  2 +-
 .../dsl/jbang/core/commands/ExportSpringBoot.java   |  2 +-
 .../apache/camel/dsl/jbang/core/commands/Pipe.java  |  2 +-
 .../apache/camel/dsl/jbang/core/commands/Run.java   |  6 +++---
 .../camel/dsl/jbang/core/common/RuntimeUtil.java    |  6 ++++--
 ...4j2-pipe.properties => log4j2-export.properties} |  8 +++++---
 .../src/main/resources/log4j2-pipe.properties       |  8 +++++---
 10 files changed, 43 insertions(+), 16 deletions(-)

diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/AbstractSearch.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/AbstractSearch.java
index 6aab0a48181..cb14056b604 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/AbstractSearch.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/AbstractSearch.java
@@ -55,7 +55,7 @@ public abstract class AbstractSearch {
 
     protected void downloadResource(File indexFile) throws ResourceDoesNotExist, IOException {
         // turn off logging as we use camel to download
-        RuntimeUtil.configureLog("off", true, false, false);
+        RuntimeUtil.configureLog("off", true, false, false, false);
 
         KameletMain main = new KameletMain();
         main.start();
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java
index b8d61feeeb8..4d98222236f 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java
@@ -35,6 +35,7 @@ import java.util.TreeSet;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
+import org.apache.camel.dsl.jbang.core.common.RuntimeUtil;
 import org.apache.camel.main.MavenGav;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.IOHelper;
@@ -68,6 +69,13 @@ abstract class BaseExport extends CamelCommand {
             "--directory" }, description = "Directory where the project will be exported", defaultValue = ".")
     protected String exportDir;
 
+    @CommandLine.Option(names = { "--logging" }, defaultValue = "false",
+                        description = "Can be used to turn on logging (logs to file in <user home>/.camel directory)")
+    boolean logging;
+
+    @CommandLine.Option(names = { "--logging-level" }, defaultValue = "info", description = "Logging level")
+    protected String loggingLevel;
+
     @CommandLine.Option(names = { "--fresh" }, description = "Make sure we use fresh (i.e. non-cached) resources")
     protected boolean fresh;
 
@@ -75,6 +83,19 @@ abstract class BaseExport extends CamelCommand {
         super(main);
     }
 
+    public Integer call() throws Exception {
+        // configure logging first
+        if (logging) {
+            RuntimeUtil.configureLog(loggingLevel, false, false, false, true);
+        } else {
+            RuntimeUtil.configureLog("off", false, false, false, true);
+        }
+        // export
+        return export();
+    }
+
+    protected abstract Integer export() throws Exception;
+
     protected static String getScheme(String name) {
         int pos = name.indexOf(":");
         if (pos != -1) {
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
index c660863554d..f1ee6bb11ab 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
@@ -44,7 +44,7 @@ class ExportCamelMain extends BaseExport {
     }
 
     @Override
-    public Integer call() throws Exception {
+    public Integer export() throws Exception {
         String[] ids = gav.split(":");
         if (ids.length != 3) {
             System.out.println("--gav must be in syntax: groupId:artifactId:version");
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
index b2d69d6ce25..0c20f59e1cd 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
@@ -41,7 +41,7 @@ class ExportQuarkus extends BaseExport {
     }
 
     @Override
-    public Integer call() throws Exception {
+    public Integer export() throws Exception {
         String[] ids = gav.split(":");
         if (ids.length != 3) {
             System.out.println("--gav must be in syntax: groupId:artifactId:version");
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
index 0b9a4a8e153..a07371c3e74 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
@@ -49,7 +49,7 @@ class ExportSpringBoot extends BaseExport {
     }
 
     @Override
-    public Integer call() throws Exception {
+    public Integer export() throws Exception {
         String[] ids = gav.split(":");
         if (ids.length != 3) {
             System.out.println("--gav must be in syntax: groupId:artifactId:version");
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Pipe.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Pipe.java
index 7dee3095377..0f999afc6c3 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Pipe.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Pipe.java
@@ -36,7 +36,7 @@ class Pipe extends CamelCommand {
     int maxIdleSeconds;
 
     @CommandLine.Option(names = { "--logging" }, defaultValue = "false",
-                        description = "Can be used to turn on logging (logs to file in .camel-jbang directory)")
+                        description = "Can be used to turn on logging (logs to file in <user home>/.camel directory)")
     boolean logging;
 
     @CommandLine.Option(names = { "--logging-level" }, defaultValue = "info", description = "Logging level")
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
index cc659290454..2d70614e72f 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
@@ -660,14 +660,14 @@ class Run extends CamelCommand {
 
     private void configureLogging() throws Exception {
         if (silentRun) {
-            RuntimeUtil.configureLog("off", false, false, false);
+            // do not configure logging
         } else if (logging) {
-            RuntimeUtil.configureLog(loggingLevel, loggingColor, loggingJson, pipeRun);
+            RuntimeUtil.configureLog(loggingLevel, loggingColor, loggingJson, pipeRun, false);
             writeSettings("loggingLevel", loggingLevel);
             writeSettings("loggingColor", loggingColor ? "true" : "false");
             writeSettings("loggingJson", loggingJson ? "true" : "false");
         } else {
-            RuntimeUtil.configureLog("off", false, false, false);
+            RuntimeUtil.configureLog("off", false, false, false, false);
             writeSettings("loggingLevel", "off");
         }
     }
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java
index 7425c3d25e5..e9585bbd4d8 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java
@@ -28,9 +28,11 @@ public final class RuntimeUtil {
     private RuntimeUtil() {
     }
 
-    public static void configureLog(String level, boolean color, boolean json, boolean pipe) {
+    public static void configureLog(String level, boolean color, boolean json, boolean pipe, boolean export) {
         if (INIT_DONE.compareAndSet(false, true)) {
-            if (pipe) {
+            if (export) {
+                Configurator.initialize("CamelJBang", "log4j2-export.properties");
+            } else if (pipe) {
                 Configurator.initialize("CamelJBang", "log4j2-pipe.properties");
             } else if (json) {
                 Configurator.initialize("CamelJBang", "log4j2-json.properties");
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-pipe.properties b/dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-export.properties
similarity index 87%
copy from dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-pipe.properties
copy to dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-export.properties
index 53a57c61108..c09e2c668a4 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-pipe.properties
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-export.properties
@@ -17,12 +17,14 @@
 
 appender.file.type = File
 appender.file.name = file
-appender.file.fileName = .camel-jbang/camel-pipe.log
-appender.file.layout.type = PatternLayout
+appender.file.fileName = ${sys:user.home}/.camel/camel-export.log
+appender.file.createOnDemand = true
+appender.file.append = false
 
+appender.file.layout.type = PatternLayout
 # logging style that is similar to spring boot (no color)
 appender.file.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %5p %pid --- [%15.15t] %-40.40c : %m%n
 
 rootLogger.level = INFO
-rootLogger.appenderRef.file.ref = file
+rootLogger.appenderRef.out.ref = file
 
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-pipe.properties b/dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-pipe.properties
index 53a57c61108..f6ed178ad0d 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-pipe.properties
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-pipe.properties
@@ -17,12 +17,14 @@
 
 appender.file.type = File
 appender.file.name = file
-appender.file.fileName = .camel-jbang/camel-pipe.log
-appender.file.layout.type = PatternLayout
+appender.file.fileName = ${sys:user.home}/.camel/camel-pipe.log
+appender.file.createOnDemand = true
+appender.file.append = false
 
+appender.file.layout.type = PatternLayout
 # logging style that is similar to spring boot (no color)
 appender.file.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %5p %pid --- [%15.15t] %-40.40c : %m%n
 
 rootLogger.level = INFO
-rootLogger.appenderRef.file.ref = file
+rootLogger.appenderRef.out.ref = file