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 2024/09/04 14:14:23 UTC
(camel) branch main updated: CAMEL-21170: camel-jbang - Add camel log --startup to only show startup logs
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 58d8d74e8be CAMEL-21170: camel-jbang - Add camel log --startup to only show startup logs
58d8d74e8be is described below
commit 58d8d74e8beab6e8d8333b4bf1d0f12716c0b630
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Sep 4 16:13:41 2024 +0200
CAMEL-21170: camel-jbang - Add camel log --startup to only show startup logs
---
.../jbang/core/commands/action/CamelLogAction.java | 33 +++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelLogAction.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelLogAction.java
index 694ee048d79..5a84377eb33 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelLogAction.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelLogAction.java
@@ -81,6 +81,10 @@ public class CamelLogAction extends ActionBaseCommand {
description = "Keep following and outputting new log lines (use ctrl + c to exit).")
boolean follow = true;
+ @CommandLine.Option(names = { "--startup" }, defaultValue = "false",
+ description = "Only shows logs from the starting phase to make it quick to look at how Camel was started.")
+ boolean startup;
+
@CommandLine.Option(names = { "--prefix" }, defaultValue = "auto", completionCandidates = PrefixCompletionCandidates.class,
description = "Print prefix with running Camel integration name. auto=only prefix when running multiple integrations. true=always prefix. false=prefix off.")
String prefix = "auto";
@@ -147,7 +151,12 @@ public class CamelLogAction extends ActionBaseCommand {
}
limit = new Date(System.currentTimeMillis() - millis);
}
- if (tail != 0) {
+ if (startup) {
+ follow = false;
+ // only log startup logs until Camel was started
+ tailStartupLogFiles(rows);
+ dumpLogFiles(rows, 0);
+ } else if (tail != 0) {
// dump existing log lines
tailLogFiles(rows, tail, limit);
dumpLogFiles(rows, tail);
@@ -414,6 +423,28 @@ public class CamelLogAction extends ActionBaseCommand {
return new File(CommandLineHelper.getCamelDir(), name);
}
+ private void tailStartupLogFiles(Map<Long, Row> rows) throws Exception {
+ for (Row row : rows.values()) {
+ File log = logFile(row.pid);
+ if (log.exists()) {
+ row.fifo = new ArrayDeque<>();
+ row.reader = new LineNumberReader(new FileReader(log));
+ String line;
+ do {
+ line = row.reader.readLine();
+ if (line != null) {
+ row.fifo.offer(line);
+ boolean found = line.contains("AbstractCamelContext") && line.contains("Apache Camel ")
+ && line.contains(" started in ") && line.contains("(build:");
+ if (found) {
+ line = null;
+ }
+ }
+ } while (line != null);
+ }
+ }
+ }
+
private void tailLogFiles(Map<Long, Row> rows, int tail, Date limit) throws Exception {
for (Row row : rows.values()) {
File log = logFile(row.pid);