ppkarwasz commented on code in PR #2249:
URL: https://github.com/apache/logging-log4j2/pull/2249#discussion_r1467508691
##########
log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java:
##########
@@ -462,53 +718,30 @@ public boolean isEnabled(
}
@Override
- public boolean isEnabled(final Level level, final Marker marker, final
CharSequence message, final Throwable t) {
+ public boolean isEnabled(
+ final Level level, final Marker marker, final CharSequence
message, final Throwable throwable) {
return isEnabled(level, marker);
}
@Override
- public boolean isEnabled(final Level level, final Marker marker, final
Object message, final Throwable t) {
+ public boolean isEnabled(final Level level, final Marker marker, final
Object message, final Throwable throwable) {
return isEnabled(level, marker);
}
@Override
- public boolean isEnabled(final Level level, final Marker marker, final
Message message, final Throwable t) {
+ public boolean isEnabled(final Level level, final Marker marker, final
Message message, final Throwable throwable) {
return isEnabled(level, marker);
}
@Override
public boolean isEnabled(final Level level, final Marker marker) {
- if (DEBUG_ENABLED) {
- return true;
- }
- if (listeners.size() > 0) {
- return listenersLevel >= level.intLevel();
- }
- return logger.isEnabled(level, marker);
- }
-
- /**
- * Queues for status events.
- *
- * @param <E> Object type to be stored in the queue.
- */
- private class BoundedQueue<E> extends ConcurrentLinkedQueue<E> {
-
- private static final long serialVersionUID = -3945953719763255337L;
-
- private final int size;
-
- BoundedQueue(final int size) {
- this.size = size;
- }
-
- @Override
- public boolean add(final E object) {
- super.add(object);
- while (messages.size() > size) {
- messages.poll();
- }
- return size > 0;
+ requireNonNull(level, "level");
+ listenerReadLock.lock();
+ try {
+ return listeners.stream()
+ .anyMatch(listener ->
listener.getStatusLevel().isLessSpecificThan(level));
Review Comment:
Here we might need a `public` method like `updateListenerLevels` (yes, I
said `public` ;-)).
Imagine if a user updates the level of its listener, he must be able to also
update the cached value (cf. Martin Fowler's [two hard
things](https://martinfowler.com/bliki/TwoHardThings.html)).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]