Class StatusLogger

    • Field Detail

      • MAX_STATUS_ENTRIES

        public static final java.lang.String MAX_STATUS_ENTRIES
        System property that can be configured with the number of entries in the queue. Once the limit is reached older entries will be removed as new entries are added.
        See Also:
        Constant Field Values
      • DEFAULT_STATUS_LISTENER_LEVEL

        public static final java.lang.String DEFAULT_STATUS_LISTENER_LEVEL
        System property that can be configured with the Level name to use as the default level for StatusListeners.
        See Also:
        Constant Field Values
      • STATUS_DATE_FORMAT

        public static final java.lang.String STATUS_DATE_FORMAT
        System property that can be configured with a date-time format string to use as the format for timestamps in the status logger output. See SimpleDateFormat for supported formats.
        Since:
        2.11.0
        See Also:
        Constant Field Values
      • MAX_ENTRIES

        private static final int MAX_ENTRIES
      • DEFAULT_STATUS_LEVEL

        private static final java.lang.String DEFAULT_STATUS_LEVEL
      • STATUS_LOGGER

        private static final StatusLogger STATUS_LOGGER
      • listeners

        private final java.util.Collection<StatusListener> listeners
      • listenersLock

        private final java.util.concurrent.locks.ReadWriteLock listenersLock
      • messages

        private final java.util.Queue<StatusData> messages
      • msgLock

        private final java.util.concurrent.locks.Lock msgLock
      • listenersLevel

        private int listenersLevel
    • Constructor Detail

      • StatusLogger

        private StatusLogger​(java.lang.String name,
                             MessageFactory messageFactory)
        Constructs the singleton instance for the STATUS_LOGGER constant.

        This is now the logger level is set:

        1. If the property "log4j2.debug" is "true", then use Level.TRACE, otherwise,
        2. Use Level.ERROR

        This is now the listener level is set:

        1. If the property "log4j2.StatusLogger.level" is set, then use it, otherwise,
        2. Use Level.WARN

        See:

        1. LOG4J2-1813 Provide shorter and more intuitive way to switch on Log4j internal debug logging. If system property "log4j2.debug" is defined, print all status logging.
        2. LOG4J2-3340 StatusLogger's log Level cannot be changed as advertised.

        Parameters:
        name - The logger name.
        messageFactory - The message factory.
    • Method Detail

      • isDebugPropertyEnabled

        private boolean isDebugPropertyEnabled()
      • getLogger

        public static StatusLogger getLogger()
        Retrieve the StatusLogger.
        Returns:
        The StatusLogger.
      • setLevel

        public void setLevel​(Level level)
      • registerListener

        public void registerListener​(StatusListener listener)
        Registers a new listener.
        Parameters:
        listener - The StatusListener to register.
      • removeListener

        public void removeListener​(StatusListener listener)
        Removes a StatusListener.
        Parameters:
        listener - The StatusListener to remove.
      • updateListenerLevel

        public void updateListenerLevel​(Level status)
      • getListeners

        public java.lang.Iterable<StatusListener> getListeners()
        Returns a thread safe Iterable for the StatusListener.
        Returns:
        An Iterable for the list of StatusListeners.
      • reset

        public void reset()
        Clears the list of status events and listeners.
      • closeSilently

        private static void closeSilently​(java.io.Closeable resource)
      • getStatusData

        public java.util.List<StatusData> getStatusData()
        Returns a List of all events as StatusData objects.
        Returns:
        The list of StatusData objects.
      • clear

        public void clear()
        Clears the list of status events.
      • getLevel

        public Level getLevel()
        Description copied from interface: Logger
        Gets the Level associated with the Logger.
        Returns:
        the Level associate with the Logger.
      • logMessage

        public void logMessage​(java.lang.String fqcn,
                               Level level,
                               Marker marker,
                               Message msg,
                               java.lang.Throwable t)
        Adds an event.
        Parameters:
        marker - The Marker
        fqcn - The fully qualified class name of the caller
        level - The logging level
        msg - The message associated with the event.
        t - A Throwable or null.
      • getStackTraceElement

        private java.lang.StackTraceElement getStackTraceElement​(java.lang.String fqcn,
                                                                 java.lang.StackTraceElement[] stackTrace)
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.String message,
                                 java.lang.Throwable t)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        t - the exception to log, including its stack trace.
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.String message)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.String message,
                                 java.lang.Object... params)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        params - The parameters.
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.String message,
                                 java.lang.Object p0)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        p0 - the message parameters
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.String message,
                                 java.lang.Object p0,
                                 java.lang.Object p1)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        p0 - the message parameters
        p1 - the message parameters
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.String message,
                                 java.lang.Object p0,
                                 java.lang.Object p1,
                                 java.lang.Object p2)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        p0 - the message parameters
        p1 - the message parameters
        p2 - the message parameters
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.String message,
                                 java.lang.Object p0,
                                 java.lang.Object p1,
                                 java.lang.Object p2,
                                 java.lang.Object p3)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        p0 - the message parameters
        p1 - the message parameters
        p2 - the message parameters
        p3 - the message parameters
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.String message,
                                 java.lang.Object p0,
                                 java.lang.Object p1,
                                 java.lang.Object p2,
                                 java.lang.Object p3,
                                 java.lang.Object p4)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        p0 - the message parameters
        p1 - the message parameters
        p2 - the message parameters
        p3 - the message parameters
        p4 - the message parameters
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.String message,
                                 java.lang.Object p0,
                                 java.lang.Object p1,
                                 java.lang.Object p2,
                                 java.lang.Object p3,
                                 java.lang.Object p4,
                                 java.lang.Object p5)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        p0 - the message parameters
        p1 - the message parameters
        p2 - the message parameters
        p3 - the message parameters
        p4 - the message parameters
        p5 - the message parameters
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.String message,
                                 java.lang.Object p0,
                                 java.lang.Object p1,
                                 java.lang.Object p2,
                                 java.lang.Object p3,
                                 java.lang.Object p4,
                                 java.lang.Object p5,
                                 java.lang.Object p6)
        Description copied from interface: ExtendedLogger
        Determines if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        p0 - the message parameters
        p1 - the message parameters
        p2 - the message parameters
        p3 - the message parameters
        p4 - the message parameters
        p5 - the message parameters
        p6 - the message parameters
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.String message,
                                 java.lang.Object p0,
                                 java.lang.Object p1,
                                 java.lang.Object p2,
                                 java.lang.Object p3,
                                 java.lang.Object p4,
                                 java.lang.Object p5,
                                 java.lang.Object p6,
                                 java.lang.Object p7)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        p0 - the message parameters
        p1 - the message parameters
        p2 - the message parameters
        p3 - the message parameters
        p4 - the message parameters
        p5 - the message parameters
        p6 - the message parameters
        p7 - the message parameters
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.String message,
                                 java.lang.Object p0,
                                 java.lang.Object p1,
                                 java.lang.Object p2,
                                 java.lang.Object p3,
                                 java.lang.Object p4,
                                 java.lang.Object p5,
                                 java.lang.Object p6,
                                 java.lang.Object p7,
                                 java.lang.Object p8)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        p0 - the message parameters
        p1 - the message parameters
        p2 - the message parameters
        p3 - the message parameters
        p4 - the message parameters
        p5 - the message parameters
        p6 - the message parameters
        p7 - the message parameters
        p8 - the message parameters
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.String message,
                                 java.lang.Object p0,
                                 java.lang.Object p1,
                                 java.lang.Object p2,
                                 java.lang.Object p3,
                                 java.lang.Object p4,
                                 java.lang.Object p5,
                                 java.lang.Object p6,
                                 java.lang.Object p7,
                                 java.lang.Object p8,
                                 java.lang.Object p9)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        p0 - the message parameters
        p1 - the message parameters
        p2 - the message parameters
        p3 - the message parameters
        p4 - the message parameters
        p5 - the message parameters
        p6 - the message parameters
        p7 - the message parameters
        p8 - the message parameters
        p9 - the message parameters
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.CharSequence message,
                                 java.lang.Throwable t)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        t - A Throwable.
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 java.lang.Object message,
                                 java.lang.Throwable t)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The message.
        t - A Throwable.
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker,
                                 Message message,
                                 java.lang.Throwable t)
        Description copied from interface: ExtendedLogger
        Tests if logging is enabled.
        Parameters:
        level - The logging Level to check.
        marker - A Marker or null.
        message - The Message.
        t - A Throwable.
        Returns:
        True if logging is enabled, false otherwise.
      • isEnabled

        public boolean isEnabled​(Level level,
                                 Marker marker)
        Description copied from interface: Logger
        Checks whether this Logger is enabled for the given Level and Marker.
        Specified by:
        isEnabled in interface Logger
        Overrides:
        isEnabled in class AbstractLogger
        Parameters:
        level - The Level to check
        marker - The Marker to check
        Returns:
        boolean - true if this Logger is enabled for level and marker, false otherwise.