From d62d91fcdcbb4785e2cf0e6603b02af9c77516dc Mon Sep 17 00:00:00 2001 From: Jintu Das Date: Tue, 30 Sep 2025 21:21:38 +0530 Subject: [PATCH 1/4] Fix colored output in terminal Signed-off-by: Jintu Das --- .../logging/XmlExtensionConfiguration.java | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/hyperledger/besu/cli/logging/XmlExtensionConfiguration.java b/app/src/main/java/org/hyperledger/besu/cli/logging/XmlExtensionConfiguration.java index 1e873276557..e11157d6f1e 100644 --- a/app/src/main/java/org/hyperledger/besu/cli/logging/XmlExtensionConfiguration.java +++ b/app/src/main/java/org/hyperledger/besu/cli/logging/XmlExtensionConfiguration.java @@ -62,7 +62,7 @@ public Configuration reconfigure() { new XmlExtensionConfiguration( refreshedParent.getLoggerContext(), refreshedParent.getConfigurationSource().resetInputStream()); - createConsoleAppender(); + refreshed.createConsoleAppender(); return refreshed; } catch (final IOException e) { LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME) @@ -90,11 +90,12 @@ private void createConsoleAppender() { return; } + final boolean colorEnabled = getColorEnabled(); final PatternLayout patternLayout = PatternLayout.newBuilder() .withConfiguration(this) - .withDisableAnsi(!BesuCommand.getColorEnabled().orElse(!noColorSet())) - .withNoConsoleNoAnsi(!BesuCommand.getColorEnabled().orElse(false)) + .withDisableAnsi(!colorEnabled) + .withNoConsoleNoAnsi(!colorEnabled) .withPattern( String.join( SEP, @@ -105,11 +106,29 @@ private void createConsoleAppender() { colorize("%msgc%n%throwable"))) .build(); final ConsoleAppender consoleAppender = - ConsoleAppender.newBuilder().setName("Console").setLayout(patternLayout).build(); + ConsoleAppender.newBuilder() + .setName("Console") + .setTarget(ConsoleAppender.Target.SYSTEM_ERR) + .setLayout(patternLayout) + .build(); consoleAppender.start(); + + // Remove existing Console appender if present to avoid duplicate output + if (this.getRootLogger().getAppenders().containsKey("Console")) { + this.getRootLogger().removeAppender("Console"); + } + this.getRootLogger().addAppender(consoleAppender, null, null); } + private boolean getColorEnabled() { + try { + return BesuCommand.getColorEnabled().orElse(!noColorSet()); + } catch (NoClassDefFoundError | ExceptionInInitializerError e) { + return !noColorSet(); + } + } + private static boolean noColorSet() { return System.getenv("NO_COLOR") != null; } From 29795f5546e6cdc0ebf71ea7e259abed193264c9 Mon Sep 17 00:00:00 2001 From: Jintu Das Date: Mon, 6 Oct 2025 15:26:03 +0530 Subject: [PATCH 2/4] Update CHANGELOG Signed-off-by: Jintu Das --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98fcad4a646..dcabaae62a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -65,6 +65,7 @@ This RC is still pending burn in for mainnet. - Update jc-kzg dependency [#9261](https://github.com/hyperledger/besu/pull/9261) ### Bug fixes +- Fix loss of colored output in terminal when using `--color-enabled=true` option [#8908](https://github.com/hyperledger/besu/issues/8908) ## 25.10.0-RC1 This RC is a pre-release for Holesky and Sepolia users. From f7ac3d1fb44cadf6656a65d50039482347682611 Mon Sep 17 00:00:00 2001 From: Jintu Das Date: Thu, 16 Oct 2025 16:58:39 +0530 Subject: [PATCH 3/4] Change logger output to out instead of err Signed-off-by: Jintu Das --- .../hyperledger/besu/cli/logging/XmlExtensionConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/hyperledger/besu/cli/logging/XmlExtensionConfiguration.java b/app/src/main/java/org/hyperledger/besu/cli/logging/XmlExtensionConfiguration.java index e11157d6f1e..58b9c4a434f 100644 --- a/app/src/main/java/org/hyperledger/besu/cli/logging/XmlExtensionConfiguration.java +++ b/app/src/main/java/org/hyperledger/besu/cli/logging/XmlExtensionConfiguration.java @@ -108,7 +108,7 @@ private void createConsoleAppender() { final ConsoleAppender consoleAppender = ConsoleAppender.newBuilder() .setName("Console") - .setTarget(ConsoleAppender.Target.SYSTEM_ERR) + .setTarget(ConsoleAppender.Target.SYSTEM_OUT) .setLayout(patternLayout) .build(); consoleAppender.start(); From 34b9b8ec44751a9a7f739623167f2c1abd3411f8 Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Wed, 12 Nov 2025 12:44:20 +1000 Subject: [PATCH 4/4] move changelog entry to unreleased Signed-off-by: Sally MacFarlane --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1542b683dd..9d718239162 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ - Use Eclipse Temurin OpenJDK JRE in Besu docker image [#9392](https://github.com/hyperledger/besu/pull/9392) ### Bug fixes +- Fix loss of colored output in terminal when using `--color-enabled=true` option [#8908](https://github.com/hyperledger/besu/issues/8908) ## 25.11.0 @@ -95,7 +96,6 @@ This RC is still pending burn in for mainnet. - Update jc-kzg dependency [#9261](https://github.com/hyperledger/besu/pull/9261) ### Bug fixes -- Fix loss of colored output in terminal when using `--color-enabled=true` option [#8908](https://github.com/hyperledger/besu/issues/8908) ## 25.10.0-RC1 This RC is a pre-release for Holesky and Sepolia users.