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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]