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 0db6adc5c28 CAMEL-19956 camel-jbang: added support for custom logging configuration (#12917) 0db6adc5c28 is described below commit 0db6adc5c28ad3188585c03f5b4e96cc1c61944b Author: Ivan Mashtak <deralus...@yandex.ru> AuthorDate: Sat Jan 27 12:47:28 2024 +0300 CAMEL-19956 camel-jbang: added support for custom logging configuration (#12917) --- .../org/apache/camel/dsl/jbang/core/commands/CamelCommand.java | 2 +- .../apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java | 4 ++-- .../main/java/org/apache/camel/dsl/jbang/core/commands/Run.java | 7 +++++-- .../java/org/apache/camel/dsl/jbang/core/common/RuntimeUtil.java | 7 +++++-- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelCommand.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelCommand.java index 527dc1e3ee9..ddbafad01f1 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelCommand.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelCommand.java @@ -53,7 +53,7 @@ public abstract class CamelCommand implements Callable<Integer> { } protected void configureLoggingOff() { - RuntimeUtil.configureLog("off", false, false, false, false); + RuntimeUtil.configureLog("off", false, false, false, false, null); } protected boolean disarrangeLogging() { diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java index ca41d47d759..64d311773ee 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java @@ -218,9 +218,9 @@ abstract class ExportBaseCommand extends CamelCommand { public Integer doCall() throws Exception { // configure logging first if (logging) { - RuntimeUtil.configureLog(loggingLevel, false, false, false, true); + RuntimeUtil.configureLog(loggingLevel, false, false, false, true, null); } else { - RuntimeUtil.configureLog("off", false, false, false, true); + RuntimeUtil.configureLog("off", false, false, false, true, null); } if (!quiet) { 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 e340c8bfdd5..e8c3fc9d8ce 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 @@ -198,6 +198,9 @@ public class Run extends CamelCommand { @Option(names = { "--logging-json" }, description = "Use JSON logging (ECS Layout)") boolean loggingJson; + @Option(names = { "--logging-config-path" }, description = "Path to file with custom logging configuration") + String loggingConfigPath; + @Option(names = { "--max-messages" }, defaultValue = "0", description = "Max number of messages to process before stopping") int maxMessages; @@ -1209,7 +1212,7 @@ public class Run extends CamelCommand { if (silentRun) { // do not configure logging } else if (logging) { - RuntimeUtil.configureLog(loggingLevel, loggingColor, loggingJson, scriptRun, false); + RuntimeUtil.configureLog(loggingLevel, loggingColor, loggingJson, scriptRun, false, loggingConfigPath); writeSettings("loggingLevel", loggingLevel); writeSettings("loggingColor", loggingColor ? "true" : "false"); writeSettings("loggingJson", loggingJson ? "true" : "false"); @@ -1220,7 +1223,7 @@ public class Run extends CamelCommand { logFile.deleteOnExit(); } } else { - RuntimeUtil.configureLog("off", false, false, false, false); + RuntimeUtil.configureLog("off", false, false, false, false, null); 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 834acfb682e..41b8371a405 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 @@ -21,6 +21,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.StringReader; import java.nio.file.Files; +import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.Properties; @@ -38,12 +39,14 @@ public final class RuntimeUtil { } public static void configureLog( - String level, boolean color, boolean json, boolean script, boolean export) { + String level, boolean color, boolean json, boolean script, boolean export, String loggingConfigPath) { if (INIT_DONE.compareAndSet(false, true)) { long pid = ProcessHandle.current().pid(); System.setProperty("pid", Long.toString(pid)); - if (export) { + if (loggingConfigPath != null) { + Configurator.initialize("CamelJBang", "file://" + Path.of(loggingConfigPath).toAbsolutePath()); + } else if (export) { Configurator.initialize("CamelJBang", "log4j2-export.properties"); } else if (script) { Configurator.initialize("CamelJBang", "log4j2-script.properties");