This is an automated email from the ASF dual-hosted git repository. vavrtom pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git
The following commit(s) were added to refs/heads/main by this push: new 60d4b84586 QPID-8694: [Broker-J] BrokerLoggerStatusListener produces repeated stacktraces (#287) 60d4b84586 is described below commit 60d4b845863eb71eb99d8d2e50cd70f3f3dcdf62 Author: Daniil Kirilyuk <daniel.kiril...@gmail.com> AuthorDate: Wed Jun 18 09:58:46 2025 +0200 QPID-8694: [Broker-J] BrokerLoggerStatusListener produces repeated stacktraces (#287) --- .../logging/logback/BrokerFileLoggerImpl.java | 3 ++- .../logback/BrokerLoggerStatusListener.java | 30 ++++++++++++++-------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/BrokerFileLoggerImpl.java b/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/BrokerFileLoggerImpl.java index fe020079bd..8defc42e82 100644 --- a/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/BrokerFileLoggerImpl.java +++ b/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/BrokerFileLoggerImpl.java @@ -197,7 +197,8 @@ public class BrokerFileLoggerImpl extends AbstractBrokerLogger<BrokerFileLoggerI systemConfig, BROKER_FAIL_ON_LOGGER_IO_ERROR, IOException.class, - IOError.class); + IOError.class, + RuntimeException.class); _statusManager = loggerContext.getStatusManager(); _statusManager.add(_logbackStatusListener); diff --git a/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/BrokerLoggerStatusListener.java b/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/BrokerLoggerStatusListener.java index 7497953a22..a1239d938b 100644 --- a/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/BrokerLoggerStatusListener.java +++ b/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/BrokerLoggerStatusListener.java @@ -21,6 +21,7 @@ package org.apache.qpid.server.logging.logback; import java.util.Arrays; import java.util.Collections; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; @@ -43,25 +44,34 @@ public class BrokerLoggerStatusListener implements StatusListener private final Set<Class<?>> _errorClasses; public BrokerLoggerStatusListener(final BrokerLogger<?> brokerLogger, - final SystemConfig<?> systemConfig, - final String contextFlag, - final Class<?>... errorClass) + final SystemConfig<?> systemConfig, + final String contextFlag, + final Class<?>... errorClass) { _brokerLogger = brokerLogger; _systemConfig = systemConfig; _contextFlag = contextFlag; - _errorClasses = - errorClass == null ? Collections.emptySet() : Arrays.stream(errorClass).collect(Collectors.toSet()); + _errorClasses = errorClass == null + ? Collections.emptySet() : Arrays.stream(errorClass).filter(Objects::nonNull).collect(Collectors.toSet()); } @Override - public void addStatusEvent(Status status) + public void addStatusEvent(final Status status) { - Throwable throwable = status.getThrowable(); - if (status.getEffectiveLevel() == Status.ERROR - && _errorClasses.stream().anyMatch(c -> c.isInstance(throwable))) + final Throwable throwable = status.getThrowable(); + if (status.getEffectiveLevel() == Status.ERROR && + _errorClasses.stream().anyMatch(errorClass -> errorClass.isInstance(throwable))) { - LOGGER.error("Unexpected error whilst trying to store log entry. Log messages could be lost.", throwable); + // log full stacktrace on DEBUG or TRACE level only + if (LOGGER.isDebugEnabled() || LOGGER.isTraceEnabled()) + { + LOGGER.error("Unexpected error whilst trying to store log entry. Log messages could be lost.", throwable); + } + else + { + LOGGER.error("Unexpected error whilst trying to store log entry. Log messages could be lost: {}", throwable.getMessage()); + } + if (_brokerLogger.getContextValue(Boolean.class, _contextFlag)) { try --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org