From fe8191447cdf03a2784bf74c6a387378e93b6cd7 Mon Sep 17 00:00:00 2001 From: Brian Stansberry Date: Tue, 14 Jan 2025 14:14:46 -0600 Subject: [PATCH] [WFLY-7132] Improve logging of exceptions during embedded process exit --- .../embedded/AbstractEmbeddedManagedProcess.java | 12 ++++++++---- .../core/embedded/logging/EmbeddedLogger.java | 4 ++++ .../core/embedded/spi/EmbeddedProcessBootstrap.java | 8 +++++++- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/embedded/src/main/java/org/wildfly/core/embedded/AbstractEmbeddedManagedProcess.java b/embedded/src/main/java/org/wildfly/core/embedded/AbstractEmbeddedManagedProcess.java index 0aab41c1e7d..5a88906b1ff 100644 --- a/embedded/src/main/java/org/wildfly/core/embedded/AbstractEmbeddedManagedProcess.java +++ b/embedded/src/main/java/org/wildfly/core/embedded/AbstractEmbeddedManagedProcess.java @@ -177,10 +177,10 @@ private void exit() { } catch (RuntimeException rte) { throw rte; } catch (InterruptedException ite) { - EmbeddedLogger.ROOT_LOGGER.error(ite.getLocalizedMessage(), ite); + logExitError(ite); Thread.currentThread().interrupt(); } catch (Exception ex) { - EmbeddedLogger.ROOT_LOGGER.error(ex.getLocalizedMessage(), ex); + logExitError(ex); } embeddedProcess.getProcessStateNotifier().removeProcessStateListener(processStateListener); @@ -196,10 +196,10 @@ private void exit() { } catch (RuntimeException rte) { throw rte; } catch (InterruptedException ite) { - EmbeddedLogger.ROOT_LOGGER.error(ite.getLocalizedMessage(), ite); + logExitError(ite); Thread.currentThread().interrupt(); } catch (Exception ex) { - EmbeddedLogger.ROOT_LOGGER.error(ex.getLocalizedMessage(), ex); + logExitError(ex); } } @@ -209,4 +209,8 @@ private void exit() { embeddedProcess = null; } } + + private void logExitError(Exception ex) { + EmbeddedLogger.ROOT_LOGGER.errorExitingEmbeddedProcess(ex, type.getLogForm(), ex.getLocalizedMessage()); + } } diff --git a/embedded/src/main/java/org/wildfly/core/embedded/logging/EmbeddedLogger.java b/embedded/src/main/java/org/wildfly/core/embedded/logging/EmbeddedLogger.java index 9ef2ce9a0f3..197b12a81f9 100644 --- a/embedded/src/main/java/org/wildfly/core/embedded/logging/EmbeddedLogger.java +++ b/embedded/src/main/java/org/wildfly/core/embedded/logging/EmbeddedLogger.java @@ -202,4 +202,8 @@ public interface EmbeddedLogger extends BasicLogger { @Message(id = 146, value = "Failed to restore context %s") @LogMessage(level = Logger.Level.ERROR) void failedToRestoreContext(@Cause Throwable cause, Context context); + + @Message(id = 147, value = "Error exiting embedded %s: %s") + @LogMessage(level = Logger.Level.ERROR) + void errorExitingEmbeddedProcess(@Cause Throwable cause, String processType, String error); } diff --git a/embedded/src/main/java/org/wildfly/core/embedded/spi/EmbeddedProcessBootstrap.java b/embedded/src/main/java/org/wildfly/core/embedded/spi/EmbeddedProcessBootstrap.java index 2d10337ef9b..122e90fb910 100644 --- a/embedded/src/main/java/org/wildfly/core/embedded/spi/EmbeddedProcessBootstrap.java +++ b/embedded/src/main/java/org/wildfly/core/embedded/spi/EmbeddedProcessBootstrap.java @@ -5,6 +5,8 @@ package org.wildfly.core.embedded.spi; +import java.util.Locale; + /** * Service interface that standalone server or host controller bootstrap logic can implement * to allow their type of process to be bootstrapped in an embedded environment. @@ -13,7 +15,11 @@ public interface EmbeddedProcessBootstrap { enum Type { STANDALONE_SERVER, - HOST_CONTROLLER + HOST_CONTROLLER; + + public String getLogForm() { + return name().toLowerCase(Locale.ENGLISH).replace("_", " "); + } } /**