public class RingBufferLogEvent extends Object implements LogEvent, ReusableMessage, CharSequence
Modifier and Type | Field and Description |
---|---|
static org.apache.logging.log4j.core.async.RingBufferLogEvent.Factory |
FACTORY
The
EventFactory for RingBufferLogEvent s. |
Constructor and Description |
---|
RingBufferLogEvent() |
Modifier and Type | Method and Description |
---|---|
char |
charAt(int index) |
void |
clear()
Release references held by ring buffer to allow objects to be garbage-collected.
|
LogEvent |
createMemento()
Creates and returns a new immutable copy of this
RingBufferLogEvent . |
void |
execute(boolean endOfBatch)
Event processor that reads the event from the ringbuffer can call this method.
|
void |
formatTo(StringBuilder buffer)
Writes a text representation of this object into the specified
StringBuilder , ideally without allocating
temporary objects. |
ReadOnlyStringMap |
getContextData()
Returns the
ReadOnlyStringMap object holding context data key-value pairs. |
Map<String,String> |
getContextMap()
Gets the context map (also know as Mapped Diagnostic Context or MDC).
|
ThreadContext.ContextStack |
getContextStack()
Gets the context stack (also known as Nested Diagnostic Context or NDC).
|
String |
getFormat()
Gets the format portion of the Message.
|
String |
getFormattedMessage()
Gets the Message formatted as a String.
|
Level |
getLevel()
Gets the level.
|
String |
getLoggerFqcn()
Returns the fully qualified class name of the caller of the logging API.
|
String |
getLoggerName()
Gets the logger name.
|
Marker |
getMarker()
Gets the Marker associated with the event.
|
Message |
getMessage()
Gets the message associated with the event.
|
long |
getNanoTime()
Returns 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.
|
short |
getParameterCount()
Returns the number of parameters that was used to initialize this reusable message for the current content.
|
Object[] |
getParameters()
Gets parameter values, if any.
|
StackTraceElement |
getSource()
Gets the source of logging request.
|
long |
getThreadId()
Gets the thread ID.
|
String |
getThreadName()
Gets the thread name.
|
int |
getThreadPriority()
Gets the thread priority.
|
Throwable |
getThrowable()
Gets the throwable, if any.
|
Throwable |
getThrown()
Gets throwable associated with logging request.
|
ThrowableProxy |
getThrownProxy()
Gets throwable proxy associated with logging request.
|
long |
getTimeMillis()
Gets event time in milliseconds since midnight, January 1, 1970 UTC.
|
void |
initializeBuilder(Log4jLogEvent.Builder builder)
Initializes the specified
Log4jLogEvent.Builder from this RingBufferLogEvent . |
boolean |
isEndOfBatch()
Returns
true if this event is the end of a batch, false otherwise. |
boolean |
isIncludeLocation()
Returns whether the source of the logging request is required downstream.
|
int |
length() |
Message |
memento()
Returns an immutable snapshot of the current internal state of this reusable message.
|
void |
setEndOfBatch(boolean endOfBatch)
Sets whether this event is the last one in a batch.
|
void |
setIncludeLocation(boolean includeLocation)
Sets whether the source of the logging request is required downstream.
|
void |
setValues(AsyncLogger anAsyncLogger,
String aLoggerName,
Marker aMarker,
String theFqcn,
Level aLevel,
Message msg,
Throwable aThrowable,
StringMap mutableContextData,
ThreadContext.ContextStack aContextStack,
long threadId,
String threadName,
int threadPriority,
StackTraceElement aLocation,
long aCurrentTimeMillis,
long aNanoTime) |
CharSequence |
subSequence(int start,
int end) |
Object[] |
swapParameters(Object[] emptyReplacement)
Replaces this ReusableMessage's parameter array with the specified value and return the original array
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
chars, codePoints, toString
public static final org.apache.logging.log4j.core.async.RingBufferLogEvent.Factory FACTORY
EventFactory
for RingBufferLogEvent
s.public void setValues(AsyncLogger anAsyncLogger, String aLoggerName, Marker aMarker, String theFqcn, Level aLevel, Message msg, Throwable aThrowable, StringMap mutableContextData, ThreadContext.ContextStack aContextStack, long threadId, String threadName, int threadPriority, StackTraceElement aLocation, long aCurrentTimeMillis, long aNanoTime)
public void execute(boolean endOfBatch)
endOfBatch
- flag to indicate if this is the last event in a batch from the RingBufferpublic boolean isEndOfBatch()
true
if this event is the end of a batch, false
otherwise.isEndOfBatch
in interface LogEvent
true
if this event is the end of a batch, false
otherwisepublic void setEndOfBatch(boolean endOfBatch)
LogEvent
immediateFlush=true
configuration.setEndOfBatch
in interface LogEvent
endOfBatch
- true
if this event is the last one in a batch, false
otherwise.public boolean isIncludeLocation()
LogEvent
StackTrace
snapshot or not before handing off this event to
another thread.isIncludeLocation
in interface LogEvent
true
if the source of the logging request is required downstream, false
otherwise.LogEvent.getSource()
public void setIncludeLocation(boolean includeLocation)
LogEvent
StackTrace
snapshot or not before handing off this event to
another thread.setIncludeLocation
in interface LogEvent
includeLocation
- true
if the source of the logging request is required downstream, false
otherwise.LogEvent.getSource()
public String getLoggerName()
LogEvent
getLoggerName
in interface LogEvent
null
.public Marker getMarker()
LogEvent
public String getLoggerFqcn()
LogEvent
getLoggerFqcn
in interface LogEvent
public Message getMessage()
LogEvent
getMessage
in interface LogEvent
public String getFormattedMessage()
Message
This method will not be called for Messages that implement the
StringBuilderFormattable
interface: instead, the
formatTo(StringBuilder)
method will be called so the
Message can format its contents without creating intermediate String objects.
getFormattedMessage
in interface Message
Message.getFormattedMessage()
public String getFormat()
Message
getFormat
in interface Message
Message.getFormat()
public Object[] getParameters()
Message
getParameters
in interface Message
Message.getParameters()
public Throwable getThrowable()
Message
getThrowable
in interface Message
Message.getThrowable()
public void formatTo(StringBuilder buffer)
StringBuilderFormattable
StringBuilder
, ideally without allocating
temporary objects.formatTo
in interface StringBuilderFormattable
buffer
- the StringBuilder to write intoStringBuilderFormattable.formatTo(StringBuilder)
public Object[] swapParameters(Object[] emptyReplacement)
swapParameters
in interface ReusableMessage
emptyReplacement
- the parameter array that can be used for subsequent uses of this reusable messageReusableMessage.swapParameters(Object[])
public short getParameterCount()
ReusableMessage
The parameter array returned by ReusableMessage.swapParameters(Object[])
may be larger than the actual number of
parameters. Callers should use this method to determine how many elements the array contains.
getParameterCount
in interface ReusableMessage
public Message memento()
ReusableMessage
memento
in interface ReusableMessage
public int length()
length
in interface CharSequence
public char charAt(int index)
charAt
in interface CharSequence
public CharSequence subSequence(int start, int end)
subSequence
in interface CharSequence
public Throwable getThrown()
LogEvent
Convenience method for ThrowableProxy.getThrowable();
public ThrowableProxy getThrownProxy()
LogEvent
getThrownProxy
in interface LogEvent
public ReadOnlyStringMap getContextData()
LogEvent
ReadOnlyStringMap
object 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 custom ContextDataInjector
to inject key-value pairs from any arbitrary source.
getContextData
in interface LogEvent
ReadOnlyStringMap
object holding context data key-value pairsContextDataInjector
,
ThreadContext
public Map<String,String> getContextMap()
LogEvent
getContextMap
in interface LogEvent
null
.public ThreadContext.ContextStack getContextStack()
LogEvent
getContextStack
in interface LogEvent
null
.public long getThreadId()
LogEvent
getThreadId
in interface LogEvent
public String getThreadName()
LogEvent
getThreadName
in interface LogEvent
public int getThreadPriority()
LogEvent
getThreadPriority
in interface LogEvent
public StackTraceElement getSource()
LogEvent
public long getTimeMillis()
LogEvent
getTimeMillis
in interface LogEvent
System.currentTimeMillis()
public long getNanoTime()
LogEvent
getNanoTime
in interface LogEvent
public void clear()
public LogEvent createMemento()
RingBufferLogEvent
.RingBufferLogEvent
public void initializeBuilder(Log4jLogEvent.Builder builder)
Log4jLogEvent.Builder
from this RingBufferLogEvent
.builder
- the builder whose fields to populateCopyright © 1999-2017 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.