Package org.apache.logging.log4j.status
Class StatusLogger
java.lang.Object
org.apache.logging.log4j.spi.AbstractLogger
org.apache.logging.log4j.status.StatusLogger
- All Implemented Interfaces:
Serializable
,Logger
,ExtendedLogger
,LocationAwareLogger
Records events that occur in the logging system. By default, only error messages are logged to
System.err
.
Normally, the Log4j StatusLogger is configured via the root <Configuration status="LEVEL"/>
node in a Log4j
configuration file. However, this can be overridden via a system property named
"log4j2.StatusLogger.level" and will work with any Log4j provider.- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate class
Queues for status events. -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final boolean
private static final String
static final String
System property that can be configured with theLevel
name to use as the default level forStatusListener
s.private final Collection
<StatusListener> private int
private final ReadWriteLock
private final SimpleLogger
private static final int
static final String
System property that can be configured with the number of entries in the queue.private final Queue
<StatusData> private final Lock
private static final String
(package private) static final PropertiesUtil
private static final long
static final String
System property that can be configured with a date-time format string to use as the format for timestamps in the status logger output.private static final StatusLogger
Fields inherited from class org.apache.logging.log4j.spi.AbstractLogger
CATCHING_MARKER, DEFAULT_FLOW_MESSAGE_FACTORY_CLASS, DEFAULT_MESSAGE_FACTORY_CLASS, ENTRY_MARKER, EXCEPTION_MARKER, EXIT_MARKER, FLOW_MARKER, name, THROWING_MARKER
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
StatusLogger
(String name, MessageFactory messageFactory, SimpleLoggerFactory loggerFactory) Constructs the singleton instance for the STATUS_LOGGER constant. -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
Clears the list of status events.private static void
closeSilently
(Closeable resource) getLevel()
Gets the Level associated with the Logger.Returns a thread safe Iterable for the StatusListener.static StatusLogger
Retrieve the StatusLogger.private StackTraceElement
getStackTraceElement
(String fqcn, StackTraceElement[] stackTrace) Returns a List of all events as StatusData objects.boolean
Checks whether this Logger is enabled for the given Level and Marker.boolean
isEnabled
(Level level, Marker marker, CharSequence message, Throwable t) Tests if logging is enabled.boolean
Tests if logging is enabled.boolean
Tests if logging is enabled.boolean
Tests if logging is enabled.boolean
Tests if logging is enabled.boolean
Tests if logging is enabled.boolean
Tests if logging is enabled.boolean
Tests if logging is enabled.boolean
isEnabled
(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4) Tests if logging is enabled.boolean
isEnabled
(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) Tests if logging is enabled.boolean
isEnabled
(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) Determines if logging is enabled.boolean
isEnabled
(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) Tests if logging is enabled.boolean
isEnabled
(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) Tests if logging is enabled.boolean
isEnabled
(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) Tests if logging is enabled.boolean
Tests if logging is enabled.boolean
Tests if logging is enabled.void
Adds an event.void
registerListener
(StatusListener listener) Registers a new listener.void
removeListener
(StatusListener listener) Removes a StatusListener.void
reset()
Clears the list of status events and listeners.void
void
updateListenerLevel
(Level status) Methods inherited from class org.apache.logging.log4j.spi.AbstractLogger
always, atDebug, atError, atFatal, atInfo, atLevel, atTrace, atWarn, catching, catching, catching, catchingMsg, checkMessageFactory, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, debug, enter, enter, enter, enter, enter, entry, entry, entry, entryMsg, entryMsg, entryMsg, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, error, exit, exit, exit, exit, exitMsg, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, fatal, getFlowMessageFactory, getLogBuilder, getMessageFactory, getName, getRecursionDepth, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, info, isDebugEnabled, isDebugEnabled, isEnabled, isErrorEnabled, isErrorEnabled, isFatalEnabled, isFatalEnabled, isInfoEnabled, isInfoEnabled, isTraceEnabled, isTraceEnabled, isWarnEnabled, isWarnEnabled, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, log, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logIfEnabled, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, logMessage, printf, printf, requiresLocation, throwing, throwing, throwing, throwingMsg, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, trace, traceEntry, traceEntry, traceEntry, traceEntry, traceEntry, traceExit, traceExit, traceExit, traceExit, traceExit, traceExit, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn, warn
-
Field Details
-
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:
-
DEFAULT_STATUS_LISTENER_LEVEL
System property that can be configured with theLevel
name to use as the default level forStatusListener
s.- See Also:
-
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. SeeSimpleDateFormat
for supported formats.- Since:
- 2.11.0
- See Also:
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
NOT_AVAIL
- See Also:
-
PROPS
-
MAX_ENTRIES
private static final int MAX_ENTRIES -
DEFAULT_STATUS_LEVEL
-
DEBUG_ENABLED
static final boolean DEBUG_ENABLED -
STATUS_LOGGER
-
logger
-
listeners
-
listenersLock
-
messages
-
msgLock
-
listenersLevel
private int listenersLevel
-
-
Constructor Details
-
StatusLogger
Constructs the singleton instance for the STATUS_LOGGER constant.This is now the logger level is set:
- If the property "log4j2.debug" is
"true"
, then useLevel.TRACE
, otherwise, - Use
Level.ERROR
This is now the listener level is set:
- If the property "log4j2.StatusLogger.level" is set, then use it, otherwise,
- Use
Level.WARN
See:
- 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.
- LOG4J2-3340 StatusLogger's log Level cannot be changed as advertised.
- Parameters:
name
- The logger name.messageFactory
- The message factory.
- If the property "log4j2.debug" is
-
-
Method Details
-
getLogger
Retrieve the StatusLogger.- Returns:
- The StatusLogger.
-
setLevel
-
registerListener
Registers a new listener.- Parameters:
listener
- The StatusListener to register.
-
removeListener
Removes a StatusListener.- Parameters:
listener
- The StatusListener to remove.
-
updateListenerLevel
-
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
-
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
Description copied from interface:Logger
Gets the Level associated with the Logger.- Returns:
- the Level associate with the Logger.
-
logMessage
Adds an event.- Parameters:
fqcn
- The fully qualified class name of the callerlevel
- The logging levelmarker
- The Markermsg
- The message associated with the event.t
- A Throwable or null.
-
getStackTraceElement
-
isEnabled
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
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
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
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
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 parametersp1
- the message parameters- Returns:
- True if logging is enabled, false otherwise.
-
isEnabled
public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, 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 parametersp1
- the message parametersp2
- the message parameters- Returns:
- True if logging is enabled, false otherwise.
-
isEnabled
public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, 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 parametersp1
- the message parametersp2
- the message parametersp3
- the message parameters- Returns:
- True if logging is enabled, false otherwise.
-
isEnabled
public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, 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 parametersp1
- the message parametersp2
- the message parametersp3
- the message parametersp4
- the message parameters- Returns:
- True if logging is enabled, false otherwise.
-
isEnabled
public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, 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 parametersp1
- the message parametersp2
- the message parametersp3
- the message parametersp4
- the message parametersp5
- the message parameters- Returns:
- True if logging is enabled, false otherwise.
-
isEnabled
public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, 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 parametersp1
- the message parametersp2
- the message parametersp3
- the message parametersp4
- the message parametersp5
- the message parametersp6
- the message parameters- Returns:
- True if logging is enabled, false otherwise.
-
isEnabled
public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, 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 parametersp1
- the message parametersp2
- the message parametersp3
- the message parametersp4
- the message parametersp5
- the message parametersp6
- the message parametersp7
- the message parameters- Returns:
- True if logging is enabled, false otherwise.
-
isEnabled
public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, 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 parametersp1
- the message parametersp2
- the message parametersp3
- the message parametersp4
- the message parametersp5
- the message parametersp6
- the message parametersp7
- the message parametersp8
- the message parameters- Returns:
- True if logging is enabled, false otherwise.
-
isEnabled
public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, 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 parametersp1
- the message parametersp2
- the message parametersp3
- the message parametersp4
- the message parametersp5
- the message parametersp6
- the message parametersp7
- the message parametersp8
- the message parametersp9
- the message parameters- Returns:
- True if logging is enabled, false otherwise.
-
isEnabled
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
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
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
Description copied from interface:Logger
Checks whether this Logger is enabled for the given Level and Marker.- Specified by:
isEnabled
in interfaceLogger
- Overrides:
isEnabled
in classAbstractLogger
- Parameters:
level
- The Level to checkmarker
- The Marker to check- Returns:
- boolean -
true
if this Logger is enabled for level and marker,false
otherwise.
-