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 <claus.ib...@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