Class MutableLogEvent
- All Implemented Interfaces:
Serializable,LogEvent,ReusableLogEvent,org.apache.logging.log4j.message.Message,org.apache.logging.log4j.message.ParameterVisitable,org.apache.logging.log4j.message.ReusableMessage,org.apache.logging.log4j.util.StringBuilderFormattable
ReusableLogEvent interface.- Since:
- 2.6
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Clears all references this event has to other objects.<S> voidforEachParameter(org.apache.logging.log4j.message.ParameterConsumer<S> action, S state) voidformatTo(StringBuilder buffer) org.apache.logging.log4j.util.StringMapReturns theReadOnlyStringMapobject holding context data key-value pairs.org.apache.logging.log4j.ThreadContext.ContextStackGets the context stack (also known as Nested Diagnostic Context or NDC).Returns the Instant when the message was logged.org.apache.logging.log4j.LevelgetLevel()Gets the level.Returns the fully qualified class name of the caller of the logging API.Gets the logger name.org.apache.logging.log4j.MarkerGets the Marker associated with the event.org.apache.logging.log4j.message.MessageGets the message associated with the event.longReturns the value of the running Java Virtual Machine's high-resolution time source when this event was created, or a dummy value if it is known that this value will not be used downstream.shortObject[]Returns the StackTraceElement for the caller.longGets the thread ID.Gets the thread name.intGets the thread priority.Gets throwable associated with logging request.longGets event time in milliseconds since midnight, January 1, 1970 UTC.voidinitializeBuilder(Log4jLogEvent.Builder builder) Initializes the specifiedLog4jLogEvent.Builderfrom thisReusableLogEvent.booleanReturnstrueif this event is the last one in a batch,falseotherwise.booleanReturns whether the source of the logging request is required downstream.org.apache.logging.log4j.message.Messagememento()voidmoveValuesFrom(LogEvent event) Initialize the fields of thisReusableLogEventfrom another event.@Nullable StackTraceElementGets the source of the logging call.voidsetContextData(org.apache.logging.log4j.util.StringMap mutableContextData) voidsetContextStack(org.apache.logging.log4j.ThreadContext.ContextStack contextStack) voidsetEndOfBatch(boolean endOfBatch) Sets whether this event is the last one in a batch.voidsetIncludeLocation(boolean includeLocation) Sets whether the source of the logging request is required downstream.voidsetInstant(Instant instant) voidsetLevel(org.apache.logging.log4j.Level level) voidsetLoggerFqcn(String loggerFqcn) voidsetLoggerName(String loggerName) voidsetMarker(org.apache.logging.log4j.Marker marker) voidsetMessage(org.apache.logging.log4j.message.Message message) voidsetNanoTime(long nanoTime) voidsetSource(StackTraceElement source) voidsetThreadId(long threadId) voidsetThreadName(String threadName) voidsetThreadPriority(int threadPriority) voidvoidsetTimeMillis(long timeMillis) Object[]swapParameters(Object[] emptyReplacement) Replaces this ReusableMessage's parameter array with the specified value and return the original arrayReturns an immutable version of this log event, which MAY BE a copy of this event.
-
Constructor Details
-
MutableLogEvent
public MutableLogEvent() -
MutableLogEvent
-
-
Method Details
-
toImmutable
Description copied from interface:LogEventReturns an immutable version of this log event, which MAY BE a copy of this event.- Specified by:
toImmutablein interfaceLogEvent- Returns:
- an immutable version of this log event
-
moveValuesFrom
Initialize the fields of thisReusableLogEventfrom another event.This method is used on async logger ringbuffer slots holding ReusableLogEvent objects in each slot.
- Parameters:
event- the event to copy data from
-
clear
public void clear()Description copied from interface:ReusableLogEventClears all references this event has to other objects.- Specified by:
clearin interfaceReusableLogEvent
-
getLoggerFqcn
Description copied from interface:LogEventReturns the fully qualified class name of the caller of the logging API.- Specified by:
getLoggerFqcnin interfaceLogEvent- Returns:
- The fully qualified class name of the caller.
-
setLoggerFqcn
- Specified by:
setLoggerFqcnin interfaceReusableLogEvent
-
getMarker
public org.apache.logging.log4j.Marker getMarker()Description copied from interface:LogEventGets the Marker associated with the event. -
setMarker
public void setMarker(org.apache.logging.log4j.Marker marker) - Specified by:
setMarkerin interfaceReusableLogEvent
-
getLevel
public org.apache.logging.log4j.Level getLevel()Description copied from interface:LogEventGets the level. -
setLevel
public void setLevel(org.apache.logging.log4j.Level level) - Specified by:
setLevelin interfaceReusableLogEvent
-
getLoggerName
Description copied from interface:LogEventGets the logger name.- Specified by:
getLoggerNamein interfaceLogEvent- Returns:
- logger name, may be
null.
-
setLoggerName
- Specified by:
setLoggerNamein interfaceReusableLogEvent
-
getMessage
public org.apache.logging.log4j.message.Message getMessage()Description copied from interface:LogEventGets the message associated with the event.- Specified by:
getMessagein interfaceLogEvent- Returns:
- message.
-
setMessage
public void setMessage(org.apache.logging.log4j.message.Message message) - Specified by:
setMessagein interfaceReusableLogEvent
-
getFormattedMessage
- Specified by:
getFormattedMessagein interfaceorg.apache.logging.log4j.message.Message- See Also:
-
Message.getFormattedMessage()
-
getFormat
- Specified by:
getFormatin interfaceorg.apache.logging.log4j.message.Message- See Also:
-
Message.getFormat()
-
getParameters
- Specified by:
getParametersin interfaceorg.apache.logging.log4j.message.Message- See Also:
-
Message.getParameters()
-
forEachParameter
public <S> void forEachParameter(org.apache.logging.log4j.message.ParameterConsumer<S> action, S state) - Specified by:
forEachParameterin interfaceorg.apache.logging.log4j.message.ParameterVisitable
-
getThrowable
- Specified by:
getThrowablein interfaceorg.apache.logging.log4j.message.Message- See Also:
-
Message.getThrowable()
-
formatTo
- Specified by:
formatToin interfaceorg.apache.logging.log4j.util.StringBuilderFormattable- See Also:
-
StringBuilderFormattable.formatTo(StringBuilder)
-
swapParameters
Replaces this ReusableMessage's parameter array with the specified value and return the original array- Specified by:
swapParametersin interfaceorg.apache.logging.log4j.message.ReusableMessage- Parameters:
emptyReplacement- the parameter array that can be used for subsequent uses of this reusable message- Returns:
- the original parameter array
- See Also:
-
ReusableMessage.swapParameters(Object[])
-
getParameterCount
public short getParameterCount()- Specified by:
getParameterCountin interfaceorg.apache.logging.log4j.message.ReusableMessage
-
memento
public org.apache.logging.log4j.message.Message memento()- Specified by:
mementoin interfaceorg.apache.logging.log4j.message.ReusableMessage
-
getThrown
Description copied from interface:LogEventGets throwable associated with logging request. -
setThrown
- Specified by:
setThrownin interfaceReusableLogEvent
-
getTimeMillis
public long getTimeMillis()Description copied from interface:LogEventGets event time in milliseconds since midnight, January 1, 1970 UTC. UseLogEvent.getInstant()to get higher precision timestamp information if available on this platform.- Specified by:
getTimeMillisin interfaceLogEvent- Returns:
- the milliseconds component of this log event's timestamp
- See Also:
-
setTimeMillis
public void setTimeMillis(long timeMillis) - Specified by:
setTimeMillisin interfaceReusableLogEvent
-
getInstant
Description copied from interface:LogEventReturns the Instant when the message was logged.Caution: if this
LogEventimplementation is mutable and reused for multiple consecutive log messages, then theInstantobject returned by this method is also mutable and reused. Client code should not keep a reference to the returned object but make a copy instead.- Specified by:
getInstantin interfaceLogEvent- Returns:
- the
Instantholding Instant details for this log event
-
setInstant
- Specified by:
setInstantin interfaceReusableLogEvent
-
setSource
- Specified by:
setSourcein interfaceReusableLogEvent
-
getSource
Returns the StackTraceElement for the caller. This will be the entry that occurs right before the first occurrence of FQCN as a class name. -
peekSource
Description copied from interface:LogEventGets the source of the logging call.This method must be side effect free.
- Specified by:
peekSourcein interfaceLogEvent- Returns:
- source of logging request or
nullif currently unknown.
-
getContextData
public org.apache.logging.log4j.util.StringMap getContextData()Description copied from interface:LogEventReturns theReadOnlyStringMapobject holding context data key-value pairs.Context data (also known as Mapped Diagnostic Context or MDC) is data that is set by the application to be included in all subsequent log events. The default source for context data is the
ThreadContext(and properties configured on the Logger that logged the event), but users can configure a customContextDataInjectorto inject key-value pairs from any arbitrary source.- Specified by:
getContextDatain interfaceLogEvent- Specified by:
getContextDatain interfaceReusableLogEvent- Returns:
- the
ReadOnlyStringMapobject holding context data key-value pairs - See Also:
-
ContextDataInjectorThreadContext
-
setContextData
public void setContextData(org.apache.logging.log4j.util.StringMap mutableContextData) - Specified by:
setContextDatain interfaceReusableLogEvent
-
getContextStack
public org.apache.logging.log4j.ThreadContext.ContextStack getContextStack()Description copied from interface:LogEventGets the context stack (also known as Nested Diagnostic Context or NDC).- Specified by:
getContextStackin interfaceLogEvent- Returns:
- The context stack, never
null.
-
setContextStack
public void setContextStack(org.apache.logging.log4j.ThreadContext.ContextStack contextStack) - Specified by:
setContextStackin interfaceReusableLogEvent
-
getThreadId
public long getThreadId()Description copied from interface:LogEventGets the thread ID.- Specified by:
getThreadIdin interfaceLogEvent- Returns:
- thread ID.
-
setThreadId
public void setThreadId(long threadId) - Specified by:
setThreadIdin interfaceReusableLogEvent
-
getThreadName
Description copied from interface:LogEventGets the thread name.- Specified by:
getThreadNamein interfaceLogEvent- Returns:
- thread name, may be null.
-
setThreadName
- Specified by:
setThreadNamein interfaceReusableLogEvent
-
getThreadPriority
public int getThreadPriority()Description copied from interface:LogEventGets the thread priority.- Specified by:
getThreadPriorityin interfaceLogEvent- Returns:
- thread priority.
-
setThreadPriority
public void setThreadPriority(int threadPriority) - Specified by:
setThreadPriorityin interfaceReusableLogEvent
-
isIncludeLocation
public boolean isIncludeLocation()Description copied from interface:LogEventReturns whether the source of the logging request is required downstream. Asynchronous Loggers and Appenders use this flag to determine whether to take aStackTracesnapshot or not before handing off this event to another thread.- Specified by:
isIncludeLocationin interfaceLogEvent- Returns:
trueif the source of the logging request is required downstream,falseotherwise.- See Also:
-
setIncludeLocation
public void setIncludeLocation(boolean includeLocation) Description copied from interface:LogEventSets whether the source of the logging request is required downstream. Asynchronous Loggers and Appenders use this flag to determine whether to take aStackTracesnapshot or not before handing off this event to another thread.- Specified by:
setIncludeLocationin interfaceLogEvent- Parameters:
includeLocation-trueif the source of the logging request is required downstream,falseotherwise.- See Also:
-
isEndOfBatch
public boolean isEndOfBatch()Description copied from interface:LogEventReturnstrueif this event is the last one in a batch,falseotherwise. Used by asynchronous Loggers and Appenders to signal to buffered downstream components when to flush to disk, as a more efficient alternative to theimmediateFlush=trueconfiguration.- Specified by:
isEndOfBatchin interfaceLogEvent- Returns:
- whether this event is the last one in a batch.
-
setEndOfBatch
public void setEndOfBatch(boolean endOfBatch) Description copied from interface:LogEventSets whether this event is the last one in a batch. Used by asynchronous Loggers and Appenders to signal to buffered downstream components when to flush to disk, as a more efficient alternative to theimmediateFlush=trueconfiguration.- Specified by:
setEndOfBatchin interfaceLogEvent- Parameters:
endOfBatch-trueif this event is the last one in a batch,falseotherwise.
-
getNanoTime
public long getNanoTime()Description copied from interface:LogEventReturns the value of the running Java Virtual Machine's high-resolution time source when this event was created, or a dummy value if it is known that this value will not be used downstream.- Specified by:
getNanoTimein interfaceLogEvent- Returns:
- The value of the running Java Virtual Machine's high-resolution time source when this event was created.
-
setNanoTime
public void setNanoTime(long nanoTime) - Specified by:
setNanoTimein interfaceReusableLogEvent
-
initializeBuilder
Description copied from interface:ReusableLogEventInitializes the specifiedLog4jLogEvent.Builderfrom thisReusableLogEvent.- Specified by:
initializeBuilderin interfaceReusableLogEvent- Parameters:
builder- the builder whose fields to populate
-