[
https://issues.apache.org/jira/browse/CAMEL-24699?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-24699.
---------------------------------
Fix Version/s: 4.23.0
Resolution: Fixed
> camel-jbang - camel run on an existing Quarkus or Camel Main project does not
> write a log file to ~/.camel
> ----------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-24699
> URL: https://issues.apache.org/jira/browse/CAMEL-24699
> Project: Camel
> Issue Type: Improvement
> Components: camel-jbang
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Major
> Fix For: 4.23.0
>
>
> When {{camel run}} is pointed at an *existing* project folder that has its
> own {{pom.xml}}, the Quarkus and Camel Main paths do not configure a log file
> under {{~/.camel}}, so {{camel log}}, the TUI Log tab and the MCP log
> resource have nothing to read for those processes.
> All the export-based runtimes are wired up (verified in {{Run.java}} on main,
> 2026-09-12):
> * {{--runtime=jbang}}: log4j2 in-process to {{~/.camel/<pid>.log}}
> * {{--runtime=main}}: {{writeCamelMainRunLogConfig}} writes
> {{camel-main-run-log4j2.properties}} into the export, logging to
> {{~/.camel/<name>.log}}
> * {{--runtime=spring-boot}}: {{spring-boot-logback.xml}} is copied into the
> export as {{logback.xml}}, logging to {{~/.camel/<pid>.log}}
> * {{--runtime=quarkus}}: {{quarkus.log.file.enabled=true}} and
> {{quarkus.log.file.path=${user.home}/.camel/<name>.log}} are appended to the
> exported {{application.properties}} (CAMEL-23831)
> The existing-project paths differ:
> * {{runExistingSpringBootProject}} copies {{spring-boot-logback.xml}} into
> the project as {{logback-camel-jbang.xml}} and passes
> {{-Dlogging.config=classpath:logback-camel-jbang.xml}}, so it works.
> * {{runExistingQuarkusProject}} only adds {{camel-quarkus-cli-connector}}
> (and {{camel-quarkus-jfr}}) to a temporary pom and runs {{quarkus:dev}}. No
> log file is configured.
> * {{runExistingCamelMainProject}} only adds {{camel-cli-connector}} (and
> {{camel-jfr}}) to a temporary pom and runs {{camel:run}}. No log file is
> configured.
> Both readers ({{CamelLogAction}} and the TUI {{CamelMonitor}}) try
> {{<pid>.log}} first and fall back to {{<name>.log}}, so either naming works.
> Suggested fix: mirror what the export paths already do.
> * Quarkus: pass {{-Dquarkus.log.file.enabled=true
> -Dquarkus.log.file.path=<~/.camel>/<name>.log}} (and the same
> {{quarkus.log.file.format}} as the export path) through {{-Djvm.args}} or as
> system properties on the {{quarkus:dev}} invocation, so the project's own
> {{application.properties}} is not modified.
> * Camel Main: pass {{-Dlog4j2.configurationFile=<path>}} pointing at a
> {{camel-main-run-log4j2.properties}} rendered into a temp location (or the
> project's target dir) via {{-Dcamel.jvmArgs}}, mirroring
> {{writeCamelMainRunLogConfig}}. Fall back gracefully if the project uses
> logback instead of log4j2.
> * Clean the temp config up in the existing shutdown hook alongside
> {{camel-jbang-run-pom.xml}}.
> This closes the last gap in "any tool reads the same log": CLI, TUI, MCP and
> AI agents currently see logs for every {{camel run}} runtime except these two
> existing-project cases.
> _Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)